有按一定规律排列的一列数:1,1,2,3,5,8,13.这列数的第2007个数除以9的余数是多
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/09 04:35:18
有按一定规律排列的一列数:1,1,2,3,5,8,13.这列数的第2007个数除以9的余数是多
有按一定规律排列的一列数:1,1,2,3,5,8,13.这列数的第2007个数除以9的余数是多
有按一定规律排列的一列数:1,1,2,3,5,8,13.这列数的第2007个数除以9的余数是多
1__ 1__ 2__ 3__ 5__ 8__ 4__ 3__ 7__ 1__
8__ 0__ 8__ 8__ 7__ 6__ 4__ 1__ 5__ 6__
2__ 8__ 1__ 7__ 3__ 4__ 1__ 5__ 6__ 2__
应该是上面的规律,一楼出现了一点瑕疵,但是目前还没有找到规律>?
提供一个程序如下:
#include"stdio.h"
main()
{
int a=0,b=1,c=1,i;
FILE *fp;
fp=fopen("c:\string.txt","wt+");
for(i=1;i<31;i++){fprintf(fp,"%2d__",abs(c%9));c=a+b;a=b;b=c;if(i%10==0)fprintf(fp,"\n");}
fclose(fp);
getch();
}
因为这个级数增张太快了,所以上面的提供的结果后几项就开始溢出了,就是上面的程序不正确.
最终的解决方案:
#include"stdio.h"
main()
{
int a=0,b=1,c=1,i;
for(i=1;i<2007;i++){c=(a+b)%9;a=b;b=c;printf("%d%d%d\n",a,b,c);}
printf("%d",c);
getch();
}
运行的结果是:7
就是第2007项除以9的余数是7,程序绝对没有问题,没有溢出现象.可以算出任意项的结果
f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)
全部mod9后
1,1,2,3,5,8,4,3,7,1,8,0,8,0,8,0,。。。
n>10,n为奇,余8,n为偶余0。
所以余8