gpt4 book ai didi

c++ - 代码中的天真编译错误

转载 作者:行者123 更新时间:2023-11-30 02:00:47 24 4
gpt4 key购买 nike

我有这个代码:

#include<iostream>
#include<algorithm>

#define mod 1000000007

using namespace std;
unsigned long long int pow(int);
unsigned long long int binomialCoeff(int ,int );
int i,j;
int T[1000][1000];

int main()
{
unsigned long long int t,k,n,ans;
cin>>t;
while(t--)
{
ans=0;
cin>>n;
int a[n];
for(i=0;i<n;i++)
cin>>a[i];

if(n%2==0)
ans=(pow(n-1)-((binomialCoeff(n,n/2))/2))%mod;
else
ans=pow(n-1)%mod;

printf("%lld\n",ans);
}

system("pause");
}

unsigned long long int binomialCoeff(int na,int rb)
{

for(i=0;i<na-rb+1;i++)
**T[i,0]=1;**

for(i=0;i<rb+1;i++)
**T[i,i]=1;**

for(j=1;j<rb+1;j++)
{
for(i=j+1;i<na-rb+j+1;i++)
**T[i,j]=T[i-1,j-1]+T[i-1,j];**
}
return (T[na,rb]);
}


unsigned long long int pow(int n)
{
int k;

if(n==0)
return 1;
else if(n%2==0)
{k=pow(n/2);return ((k%mod)*(k%mod))%mod;}
else
{k=pow(n/2);return ((((k%mod)*(k%mod))%mod)*2)%mod;}
}

我有这个算法:

2^(n-1) - ((1+(-1)^n)/4)*binomial(n, n/2)

... for this question .

但是在我的编译器中出现编译错误:

In function `long long unsigned int binomialCoeff(int, int)': 
incompatible types in assignment of `int' to `int[1000]'
invalid operands of types `int[1000]' and `int[1000]' to binary `operator+'
invalid conversion from `int*' to `long long unsigned int'

最佳答案

您的数组访问语法错误。尝试:

T[i][0] = 1;

在您对多维数组的所有使用中都是如此。例如,稍后,这个:

// Bad code from original post
T[i,j]=T[i-1,j-1]+T[i-1,j]

应该写成:

T[i][j]=T[i-1][j-1]+T[i-1][j];

关于c++ - 代码中的天真编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779331/

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