您的位置:首页 > 其它

二十四:数字拆解

2017-12-29 19:15 85 查看
问题 : 数字拆解

题目描述


给出一个数M,求M通过比M小的数的的加法,有多少种方法。

比如给出的数是6

那么,M可以由

1. 5+1=6

2. 4+2=6

3. 4+1+1=6

4. 3+3=6

5. 3+2+1=6

6. 3+1+1+1=6

7. 2+2+2=6

8. 2+2+1+1=6

9. 2+1+1+1+1=6

10. 1+1+1+1+1+1=6

共10种方法。
输入

一个数M(M小于50)
输出

一个数,表示有多少种方法
样例输入

6
样例输出

10

#include<stdio.h>
#include<windows.h>
int line=0;
void fun(int n,int sum,int i){
int a;
for(int j=1;j<=i;j++){
a=sum;
a=a+j;

if(n==a){
line++;
//Sleep(1000);
return;
}else{
//	Sleep(1000);
fun(n,a,j);
}
}
}
int main(){
int n,sum;
scanf("%d",&n);
for(int i=1;i<n;i++){
sum=i;
fun(n,sum,i);
}
printf("%d",line);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: