一个已经升序排好的整型数组a[n]和整数S

来源:互联网 发布:赤月传说2转生数据 编辑:程序博客网 时间:2024/06/05 02:58

一个已经升序排好的整型数组a[n]和整数S,需要在整型数中找到任意下表的和为S;如a[9]={1,4,8,10,12,15,22,25,31}; S = 30;这组合为0 1 7;2 4;2 3 4

#include<iostream>using namespace std;int func(int data[],unsigned int length,int sum){    bool flag = true;    if(length == 0)    {        flag = false;        return -1;    }    if(flag && data[length -1] > sum)        func(data,length -1,sum);    else if(flag && data[length -1] < sum)    {           if(func(data,length -1,sum-data[length-1]) > 0)            cout<<length-1<<" ";    }    else  if(flag && data[length -1] == sum)    {        cout<<length-1<<" ";        return 1;    }}int main(){    int a[9]={1,4,8,10,12,15,22,25,31};///测试数组元素    int S = 30;                        ///测试总和    int length = 9;                     ///数组长度    for(int i = length;i >= 1;i--)        if(a[i-1] <= S)        {            if(func(a,i,S) > 0)                cout<<endl;        }    return 0;}
0 0
原创粉丝点击