c - 用阶乘法计算二项式系数的C程序
问题描述
我很确定这只是一个小错误,但我不知道为什么它不起作用..?
如果您能帮助我,我将不胜感激!
#include <stdio.h>
int fak(int n) {
int fak_n;
if (n <= 1) {
fak_n = 1;
}
for (int i = 2; i <= n; i++) {
fak_n = fak_n * i;
}
return fak_n;
}
int bin(int n, int k) {
return fak(n) / (fak(k) * fak(n - k));
}
int main() {
int n;
int k;
scanf("%d%d", &n, &k);
printf("%d\n", bin(n, k));
return 0;
}
解决方案
fak_n
n
当大于 1时使用不初始化。初始化应该像这样无条件地进行:
int fak(int n) {
int fak_n=1;
for(int i=2; i<=n; i++){
fak_n=fak_n*i;
}
return fak_n;
}
推荐阅读
- java - 尤里卡服务器和网关在一台服务器上,尤里卡客户端在另一台服务器上
- java - 如何使用 ServletContext 加载类路径资源?
- linux - 如何在单独的系统上将 Solr 一个实例与第二个实例同步
- python - 'CoInitialize has not been called' 当通过 Object 调用带有参数的函数时
- php - 如何在报告php中应用日期过滤器
- android - 想要进行firebase android嵌套查询
- javascript - javascript上的多个变量
- java - 从 Spring Boot 简单 JDBCcall 调用 PLSQL 过程时出错
- node.js - Promises:异步处理可以吗?
- c# - 从 Microsoft.Office.Interrop.Excel 读取 excel 时出错