[求助]问题有点难度啊!!大家进来看看!
题目:n个数之中分别选中1到n个数的所有可能然后输出
例如n个数之中选出其中任意不同的1个数,输出所有可能
n个数之中选出其中任意不同的2个数,输出所有可能
递推!!
#include <stdio.h> #include <stdlib.h>
int n_factorial(int n) /* define the function of caculate n! */ { int i, result; if( n== 0) return 1; else { result = 1; for(i = 1; i <= n; i++) result = result * i; return result; } }
/* define the function of caculate combination number */ int combination_m_n(int m, int n) { return ( n_factorial(n) /(n_factorial(m) * n_factorial(n - m) ) ); }
main() { int i,n; printf("Please input the number:\n"); scanf("%d", &n); if( n > 13 ) { printf("Overflow error, the input is too great\n"); exit(1); } for(i = 1; i <= n; i++) printf("All possibility of seleting %d is %d\n", i, combination_m_n(i, n)); } PS:好像没有用到递推,你的意思是依次类推?