问题:编制程序,输入m,n(M>=n>=0)后,计算下列表达式的值并输出:
m!
n! (m-n)!
解题思路: 首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数 一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!
具体步骤:利用循环,设循环变量为 i,初值为 1,i 从 1 变化到 m,依次让 i 与 sum_1 相乘,并将乘积赋给 sum_1
1.定义变量 sum_1,并赋初值 1
2.i 自增 1
3.直到 i 超过 m
#includeint main() { int m,n; int i,j,k; double sum_1,sum_2,sum_3; sum_1=sum_2=sum_3=1; double x; scanf("%d %d",&m,&n); for(i=1;i<=m;i++) { sum_1=sum_1*i;//求m的阶乘 for(j=1;j<=n;j++) sum_2=sum_2*j;//求n的阶乘 for(k=1;k<=(m-n);k++) sum_3=sum_3*k;//求m-n的阶乘 } //为什么嵌套循环:题目说明了 m > = n > = 0,所以m 做外循环,n以及m-n 做内循环,分别去对应值 x=sum_1/(sum_2*sum_3);//题目要求的最终计算 printf("%.0lf",x); }



