Fibonacci Again

本文探讨了一种特殊的Fibonacci数列,即F(0)=7, F(1)=11, F(n)=F(n-1)+F(n-2),并提出算法判断3能否整除数列中的任意项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Problem Description
There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).
 

Input
Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).
 

Output
Print the word "yes" if 3 divide evenly into F(n).

Print the word "no" if not.
 

Sample Input
0 1 2 3 4 5
 

Sample Output
no
#include<stdio.h>
int f[1000010];
int main()
{
	int n,i;
	
	while(~scanf("%d",&n))
	{
	    f[0]=7;f[1]=11;
	//	if(n==0||n==1)
//	  {
//		printf("no\n");
//		continue;
//	  }
	 	for(i=2;i<=n;i++)
		{
	    f[i-1]=f[i-1]%3; 
		 f[i-2]=f[i-2]%3;
		 f[i]=(f[i-1]+f[i-2])%3;
	     }
	     //printf("%d\n",f[n]);
	     if(f[n]==0)
	     printf("yes\n");
	     else printf("no\n");
	}
	return 0;
}

noyesnonono
 

Author
Leojay
 分析:若直接求最后在求余,很明显这种类型的数列到40就会超出范围,故分别求余;(中国剩余定理)
代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值