题目
3.某人说他记住了 1-100000 的所有斐波那契数。 为了考验他,我们随便出一个数 n,让他说出第 n 个斐波那契数。 当然,斐波那契数会很大。 因此, 如果第 n 个斐波那契数不到 6 位,则说出该数;否则只说出最后 6 位。 程序框架如下: int main(int argc, char const *argv[]) { int x; while (scanf(“%d”,&x)) { if(不到六位) 输出 x; else 输出最后六位; } return 0; }
代码#include #define NUM 100000 int main (void) { long a,b; long sum[NUM]={1,1}; for(a=2;a<NUM;a++) { if(sum[a-1]+sum[a-2]<1000000) { sum[a]=sum[a-1]+sum[a-2]; } else { sum[a]=(sum[a-1]+sum[a-2])%1000000; } } while(scanf("%d",&a)) { printf("%d\n",sum[a-1]); } getchar(); return 0; }