为什么开数组(1千万)的同时初始化会报错?求大佬解答
查看原帖
为什么开数组(1千万)的同时初始化会报错?求大佬解答
897118
xmkxk楼主2023/8/6 17:08

开1百万就不会报错

#include <cstdio>

long long fib[10000000]={0,1,1};//此处报错
int main(){
	long long m,ans=0;
	scanf("%lld",&m);
	for(register long long i=3;;i++){
		fib[i]=((fib[i-1])+(fib[i-2]))%m;
		if(fib[i-1]==0&&fib[i]==1){
			ans=i-1;printf("%lld",ans);
			return 0;
		}
	}
	return 0;
}

改成这样就过了

#include <cstdio>

long long fib[10000000];
int main(){
	fib[0]=fib[1]=1;//这里
	long long m,ans=0;
	scanf("%lld",&m);
	for(register long long i=3;;i++){
		fib[i]=((fib[i-1])+(fib[i-2]))%m;
		if(fib[i-1]==0&&fib[i]==1){
			ans=i-1;printf("%lld",ans);
			return 0;
		}
	}
	return 0;
}

2023/8/6 17:08
加载中...