题目
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 <stdio.h>
#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;
}