微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

帕斯卡三角函数不适用于第 24 行和其他一些行

如何解决帕斯卡三角函数不适用于第 24 行和其他一些行

我遇到了以下问题:

给定一个整数 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 举报,一经查实,本站将立刻删除。