全局变量
有个小程序,求第N个斐波那契数的10007的余,1<N<1000000我的第一次代码
程序代码:
#include<stdio.h> #include <stdlib.h> int main(){ int i,n,F[1000001];//。。 F[1]=1; F[2]=1; scanf("%d",&n); for(i=3;i<=n;++i) F[i]=(F[i-1]+F[i-2])%10007; printf("%d\n",F[n]); return 0; }
运行是提示运行出错,
修改为一下:把1000001改为100001;运行出来了,猜测是内存不够?感觉不太可能、、
再改:把数组定义放在全局变量
程序代码:
#include<stdio.h> #include <stdlib.h> int F[1000001];//。。。。 int main(){ int i,n; F[1]=1; F[2]=1; scanf("%d",&n); for(i=3;i<=n;++i) F[i]=(F[i-1]+F[i-2])%10007; printf("%d\n",F[n]); return 0; }
运行成功。
想问下为什么?谢谢。