**练习2-18 求组合数 (15分)**

根据题目的要求来编写程序 笔者写的程序并不算好 有待优化 是一种思路 不过在PTA提交 仍然有两个错误点
#include<stdio.h>
double fact(int n);
int i = 0 ;
int j = 0;
int main()
{
double C;
int n,m;
scanf("%d %d", &m ,&n);
C = fact(n) / (fact(m)*fact(n-m));
printf("result = %.0lf", C);
return 0;
}
double fact(int n) /* 计算阶乘的函数 */
{
int i = 0;
double result = 0;
if (n !=0 && n != 1) /*当 n不等于0 且 不等于1 才执行 否者(也就是N=1 或 N=0)返回它本身 */
{
for (i=(n-1) ; i!=0; i--) /* 从高位往下乘 n = 4 i = 3 */
{
n = n * i ; /*阶乘是乘法 不是加法*/
}
}else{
return n;}
result = n;
return result ;
}
本文详细解析了PTA平台上的一个经典编程题目:求组合数。通过C语言实现了一个计算组合数的程序,包括阶乘的计算方法。虽然程序存在优化空间,但为初学者提供了理解和实践组合数计算的基础。
1453

被折叠的 条评论
为什么被折叠?



