积木算法

来源:互联网 发布:mysql bit类型比较 编辑:程序博客网 时间:2024/04/28 05:48

积木算法:

输入一个数,列举出所有多个整数相加得出该数的式子,如:

15 = 1 + 2 + 3 + 4 + 5 = 4 + 5 + 6 = 7 + 8 ;


算法多组输入输出,先输入n,代表输入n组,每组输入一个数,如输入:

3

15

3

4

输出:

1 2 3 4 5 

4 5 6

7 8

1 2

No


我的C++程序:

#include <iostream>using namespace std;int jimu(int n){    int num = 0;    bool flag = false;    for(int i=1;i<=n/2;i++){        for(int j=i;j<=(n/2+1);j++){            num = num + j;            if(num == n){                for(int k=i;k<=j;k++){                    if(flag){                        cout<<endl;                        flag = false;                    }                    if(k != j){                        cout<<k<<" ";                    }else{                        i = i+2;                        cout<<k;                    }                }                flag = true;            }        }        num = 0;    }    if(!flag){        cout<<"No";    }}int main(){    int m,n;    cin>>m;    for(int i=0;i<m;i++){        cin>>n;        jimu(n);        if(i != m-1){            cout<<endl;        }    }    return 0;}

代码测试结果:



2 0
原创粉丝点击