70,023
社区成员




//http://bbs.csdn.net/topics/390667169
//1到1中选5个数:1
//11111
//共1种,
//1到2中选5个数:12 2 2 2 2
//11111 A
//11112
//11122
//11222
//12222
//22222
//共6种,
//1到3中选5个数:123 23 3 23 3 3 23 3 3 3 233333
//11111 A
//11112
//11113
//11122
//11123
//11133
//11222
//11223
//11233
//11333
//12222
//12223
//12233
//12333
//13333
//22222
//22223
//22233
//22333
//23333
//33333
//共21种,
//1到4中选5个数:1234 234 34 4 234 34 4 34 4 4 234 34 4 34 4 4 34 4 4 4 234 34 4 34 4 4 34 4 4 4 344444
//11111 A
//11112
//11113
//11114
//11122
//11123
//11124
//11133
//11134
//11144
//11222
//11223
//11224
//11233
//11234
//11244
//11333
//11334
//11344
//11444
//12222
//12223
//12224
//12233
//12234
//12244
//12333
//12334
//12344
//12444
//13333
//13334
//13344
//13444
//14444
//22222
//22223
//22224
//22233
//22234
//22244
//22333
//22334
//22344
//22444
//23333
//23334
//23344
//23444
//24444
//33333
//33334
//33344
//33444
//34444
//44444
//共56种,
//1到5中选5个数:12345 2345 345 45 5 2345 345 45 5 345 45 5 45 5 5 2345 345 45 5 345 45 5 45 5 5 345 45 5 45 5 5 45 5 5 5 2345 345 45 5 345 45 5 45 5 5 345 45 5 45 5 5 45 5 5 5 345 45 5 45 5 5 45 5 5 5 455555
//11111 A
//11112
//11113
//11114
//11115
//11122
//11123
//11124
//11125
//11133
//11134
//11135
//11144
//11145
//11155
//11222
//11223
//11224
//11225
//11233
//11234
//11235
//11244
//11245
//11255
//11333
//11334
//11335
//11344
//11345
//11355
//11444
//11445
//11455
//11555
//12222
//12223
//12224
//12225
//12233
//12234
//12235
//12244
//12245
//12255
//12333
//12334
//12335
//12344
//12345
//12355
//12444
//12445
//12455
//12555
//13333
//13334
//13335
//13344
//13345
//13355
//13444
//13445
//13455
//13555
//14444
//14445
//14455
//14555
//15555
//22222
//22223
//22224
//22225
//22233
//22234
//22235
//22244
//22245
//22255
//22333
//22334
//22335
//22344
//22345
//22355
//22444
//22445
//22455
//22555
//23333
//23334
//23335
//23344
//23345
//23355
//23444
//23445
//23455
//23555
//24444
//24445
//24455
//24555
//25555
//33333
//33334
//33335
//33344
//33345
//33355
//33444
//33445
//33455
//33555
//34444
//34445
//34455
//34555
//35555
//44444
//44445
//44455
//44555
//45555
//55555
//共126种,
//1到6中选5个数:123456 23456 3456 456 56 6 23456 3456 456 56 6 3456 456 56 6 456 56 6 56 6 6 23456 3456 456 56 6 3456 456 56 6 456 56 6 56 6 6 3456 456 56 6 456 56 6 56 6 6 456 56 6 56 6 6 56 6 6 6 23456 3456 456 56 6 3456 456 56 6 456 56 6 56 6 6 3456 456 56 6 456 56 6 56 6 6 456 56 6 56 6 6 56 6 6 6 3456 456 56 6 456 56 6 56 6 6 456 56 6 56 6 6 56 6 6 6 456 56 6 56 6 6 56 6 6 6 566666
//11111 A
//11112
//11113
//11114
//11115
//11116
//11122
//11123
//11124
//11125
//11126
//11133
//11134
//11135
//11136
//11144
//11145
//11146
//11155
//11156
//11166
//11222
//11223
//11224
//11225
//11226
//11233
//11234
//11235
//11236
//11244
//11245
//11246
//11255
//11256
//11266
//11333
//11334
//11335
//11336
//11344
//11345
//11346
//11355
//11356
//11366
//11444
//11445
//11446
//11455
//11456
//11466
//11555
//11556
//11566
//11666
//12222
//12223
//12224
//12225
//12226
//12233
//12234
//12235
//12236
//12244
//12245
//12246
//12255
//12256
//12266
//12333
//12334
//12335
//12336
//12344
//12345
//12346
//12355
//12356
//12366
//12444
//12445
//12446
//12455
//12456
//12466
//12555
//12556
//12566
//12666
//13333
//13334
//13335
//13336
//13344
//13345
//13346
//13355
//13356
//13366
//13444
//13445
//13446
//13455
//13456
//13466
//13555
//13556
//13566
//13666
//14444
//14445
//14446
//14455
//14456
//14466
//14555
//14556
//14566
//14666
//15555
//15556
//15566
//15666
//16666
//22222
//22223
//22224
//22225
//22226
//22233
//22234
//22235
//22236
//22244
//22245
//22246
//22255
//22256
//22266
//22333
//22334
//22335
//22336
//22344
//22345
//22346
//22355
//22356
//22366
//22444
//22445
//22446
//22455
//22456
//22466
//22555
//22556
//22566
//22666
//23333
//23334
//23335
//23336
//23344
//23345
//23346
//23355
//23356
//23366
//23444
//23445
//23446
//23455
//23456
//23466
//23555
//23556
//23566
//23666
//24444
//24445
//24446
//24455
//24456
//24466
//24555
//24556
//24566
//24666
//25555
//25556
//25566
//25666
//26666
//33333
//33334
//33335
//33336
//33344
//33345
//33346
//33355
//33356
//33366
//33444
//33445
//33446
//33455
//33456
//33466
//33555
//33556
//33566
//33666
//34444
//34445
//34446
//34455
//34456
//34466
//34555
//34556
//34566
//34666
//35555
//35556
//35566
//35666
//36666
//44444
//44445
//44446
//44455
//44456
//44466
//44555
//44556
//44566
//44666
//45555
//45556
//45566
//45666
//46666
//55555
//55556
//55566
//55666
//56666
//66666
//共252种,
//1到7中选5个数:
//……
//从1到n中选5个数,求其非递减序可重复数字的排列的个数
#include <stdio.h>
int data[8];
int count(int b) {
int k,r;
r=0;
for (k=0;k<b-2;k++) r+=data[k];
return r;
}
int sum1to(int m) {
return (1+m)*m/2;
}
int main() {
int n,t,i,j,d;
data[0]=6;
for (d=1;d<=7;d++) {
t=0;
for (i=d+2;i>=1;i--) {
for (j=i;j>=1;j--) {
t=t+sum1to(j);
}
}
data[d]=t;
}
while (1) {
printf("Input n(1..9):");fflush(stdout);
rewind(stdin);
scanf("%d",&n);
if (1<=n && n<=9) break;
}
if (n==1) t=1;
else if (n==2) t=data[0];
else if (n>2) t=data[n-2]+count(n);
printf("%d\n",t);
return 0;
}
//Input n(1..9):1
//1
//Input n(1..9):2
//6
//Input n(1..9):3
//21
//Input n(1..9):4
//56
//Input n(1..9):5
//126
//Input n(1..9):6
//252
//Input n(1..9):7
//462
//Input n(1..9):8
//792
//Input n(1..9):9
//1287
//
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
1到1中选5个数:
11111
共1种,
1到2中选5个数:
11111
11112
11122
11222
12222
22222
共6种,
1到3中选5个数:
11111
11112
11113
11122
11123
11133
11222
11223
11233
11333
12222
12223
12233
12333
13333
22222
22223
22233
22333
23333
33333
共21种,
1到4中选5个数:
……