例1】编写计算组合数的程序。
#include<stdio.h> unsigned long Fact (unsigned int n); int main() { int m,k; unsigned long p do{ printf ("Input m,k (m>=k>0):"); scanf ("%d,%d",&m,&k); }while(m<kl lm<=0l lk<0); p = Fact(m)/(Fact(k)*Fact(m-k)); printf ("p=%lu\n",p); return 0; } /*函数功能:用迭代法计算无符号整型变量n的阶乘*/ unsigned long Fact(unsigned int n) { unsigned int i; unsigned long result=1; for (i=2;i<=n;i++) result*=i; return result; }
程序的3次测试结果为:
①Input m,k (m>=k>0): 3,2⤹
p=3
②Input m,k (m>=k>0): 2,3⤹
Input m,k (m>=k>0): 3,3⤹
p=1
③Input m,k (m>=k>0):-2,-4⤹
Input m,k (m>=k>0):4,2⤹
p=6
1、参考例1,利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。
2、参考例1,利用求阶乘函数Fact(),编程计算并输出1!+2!+……+n!的值。