计算机精英协会考核题 —— 第三题:斐波那契数

题目

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;
}
原文地址:https://www.cnblogs.com/AlexKing007/p/12338620.html