问题描述
我遇到了以下问题:
给定一个整数 rowIndex,返回帕斯卡三角形的 rowIndex 行。 请注意,行索引从 0 开始。
Pascal Triangle 元素可以用函数来预测:n! /k!(n-k)!
我下面的代码适用于大多数条目,除了少数几个,我不知道我哪里出错了。
例如,如果我输入 24 所有条目都是正确的,除了第二个元素和倒数第二个元素。
我得到 [1,23,... 23,1] 当我应该得到 [1,24,... 24,1];
假设数学函数是正确的,99.99% 的肯定是正确的,我在这里遗漏了什么?
double factorial(double n);
int* getRow(int rowIndex,int* returnSize){
*returnSize = rowIndex + 1;
int* ans = malloc(*returnSize * sizeof(int));
double a = factorial(rowIndex);
for(int i = 0; i<=rowIndex; i++) {
ans[i] = a / ( factorial(i) * factorial(rowIndex-i) );
}
return ans;
}
double factorial(double n) {
double fact=1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)