using namespace std;
int n,s=0;//n为输入值,s为解决方案个数
void search(int i,int j){//i是要搜索的数 j是本次搜索开始最小的值
int left;
if(i<=0)return;
for(int k=1;k<=i;k++){
if(k<j)return;
left=i-k;
if(left<0)return;
else if(left==0){s+=1;}
else {j=k;search(left,j);}
}
}
int main(){
cin >> n;
search(n,0);
cout << s << endl;
system("pause");
}问题是输入一个大于一的自然数n,输出n可以表示为若干小于n的自然数之和的拆分方法的种数如3=1+1+1=1+2 共两种这段代码的问题在哪里?求教
目前暂无任何回答
- 0 回答
- 0 关注
- 1257 浏览
添加回答
举报
0/150
提交
取消