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 Input0
1
2
3
4
5
Sample Outputno
no
yes
no
no
no
法一:
找规律,等差数列
是从第三个开始所以每四个为yes
#include <stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n%4==2)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
错误代码:
#include<stdio.h>
int main()
{
int a[100000]={0},i,s,n;
a[0]=7%3;
a[1]=11%3;
while(scanf("%d",&n)!=EOF)
{
for(i=2;i<=n;i++)
a[i]=(a[i-1]%3+a[i-2]%3)%3;
if(a[n]==0)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
给出的结果是Time Limit Exceeded
但这个就是对的,不太明白;
#include <stdio.h>
int main()
{
int a[1000000]={0};
a[0]=7%3;
a[1]=11%3;
int n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=2;i<=n;i++)
a[i]=(a[i-1]%3+a[i-2]%3)%3;
if(a[n]==0)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
该博客探讨了一种特殊的Fibonacci数列,其中F(0)=7,F(1)=11,F(n)=F(n-1)+F(n-2),并要求判断3是否能整除F(n)。对于输入的n值(n<1,000,000),输出“yes”表示3能整除F(n),反之输出“no”。博主尝试通过找规律和编写代码来解决,虽然遇到了超时问题,但认为代码是正确的。"
121407719,11605409,阿里云RDS数据库使用指南,"['服务器', '数据库', '阿里云RDS', '数据库管理', '云服务']

被折叠的 条评论
为什么被折叠?



