gpt4 book ai didi

c - 这是一个 C 程序,用于计算从 0 到 n 的 k 的总和 : nCk . 我遇到了段错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:56 26 4
gpt4 key购买 nike

  1. 变量test为后面的测试用例数
  2. 函数 factorial 返回数字的阶乘
  3. 函数 summ 给出 k 从 1 到 n nCk 的总和

这是我的代码:

#include<stdio.h>
float factorial(int x)
{
if(x==1)
return 1.0;
else
return (x*factorial(x-1));
}
int summ(int y)
{
int k=1;double sum=0;int r;
while(k<=y)
{
sum=sum +((factorial(y))/(factorial(y-k)*factorial(k)));
k++;
}
r=(int)sum%(int)((1000000007.00));
return r;
}
main()
{
int test;
scanf("%d",&test);int j=0;
int i=0;int arr[test];int val;int flag;
while(i<test)
{
scanf("%d",&val);
flag=summ(val);
arr[i]=flag;
i++;
}
while(j<test)
{
printf("%d\n",arr[j] );
j++;
}
return 0;
}

最佳答案

作为提示,查找 binomial theorem , 这表示

(n choose 0) + (n choose 1) + ... + (n choose n) = 2n

这可以使用移位在单行代码中计算。

希望这对您有所帮助!

关于c - 这是一个 C 程序,用于计算从 0 到 n 的 k 的总和 : nCk . 我遇到了段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19970130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com