C语言帝进!!!一道ACM题
魔兽世界吧
全部回复
仅看楼主
level 6
L唯一de泪 楼主
求一个数的拆分数。数的大小小于1000
2010年06月07日 12点06分 1
level 6
果断2L不杯具!!!    刷点字等毕业~~
求粉 !!秒回!!!
2010年06月07日 12点06分 2
level 1
是这种麼?
6
5 1
4 2
4 1 1
3 3
3 2 1
3 1 1 1
2 2 2
2 2 1 1
2 1 1 1 1
1 1 1 1 1 1 
2010年06月07日 12点06分 3
level 6
L唯一de泪 楼主

2010年06月07日 12点06分 4
level 6
L唯一de泪 楼主
说下大体思路即可
2010年06月07日 12点06分 5
level 6
L唯一de泪 楼主
人工
2010年06月07日 12点06分 6
level 6
L唯一de泪 楼主
没人会?
2010年06月07日 12点06分 7
level 1

第一种:
15为例
1:2位 从大到小
14 1
13 2
12 3
11 4
10 5
9 6
8 7
2:3位 从大到小
13 1 1
12 2 1
11 3 1
11 2 2
10 4 1
10 3 2
9 5 1
9 4 2
9 3 3
8 6 1
8 5 2
8 4 3
7 7 1
7 6 2
7 5 3
7 4 4
依此类推。没试过。

2010年06月07日 12点06分 8
level 1
如果是求一共有多少个拆分数的话
int a(int n,int m) {
if((n <1)||(m <1)){
return 0;
}
if((n==1)||(m==1)){
return 1;
}
if(n<m){
return a (n,n);
}
if(n>m){
return a(n,m-1)+a(n-m,m);
}
if(n==m){
return a(n,m-1)+1;
}
}
int main() {
int b;
scanf("%d",&b);
printf("%d\n",a(b,b));
} 
2010年06月07日 13点06分 9
level 1
第二种:
6
1 1 1 1 1 1
2 1 1 1 1
2 2 1 1
2 2 2
2 1 1 1 1
3 1 1 1
3 2 1
3 3
2 2 1 1
4 1 1
4 2
5 1
由于分支2 1 1 1 1和分支2 2 1 1
减去两次。
这种算法可用递归。

2010年06月07日 13点06分 10
level 1
楼主跑了?
没验证过,楼主自己试一下。成功了发我短信。
2010年06月07日 13点06分 11
1