今天写到了一个特别的题目,题目是这么说的:斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。这里我们定义另外一种斐波那契数列: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2)。编程计算该数列的前n(n<1000000)项是否能被3整除。这个题目一开始我是用一直加的方法算的,但是这个数据超出了longlong。后来才发现这个程序需要找规律再求解。程序如下:
#include<stdio.h>
int main()
{
long long n,i=2;
int a=7,b=11;
scanf("%lld",&n);
if (n>0&&n<1e6){
if(n==1)
printf("no ");
else if(n==2)
printf("no no ");
else
printf("no no ");
for(;i<n;i++){
switch((i+2)%4)
{
case 0:
printf("yes ");
break;
case 1:
case 2:
case 3:
case 4:
printf("no ");
break;
}}}
return 0;
}