文章目录

1 题目

NowCoder数列
时间限制 3000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
NowCoder最近在研究一个数列:

  • F(0) = 7
  • F(1) = 11
  • F(n) = F(n-1) + F(n-2) (n≥2)
    他称之为NowCoder数列。请你帮忙确认一下数列中第n个数是否是3的倍数。

输入描述:
输入包含多组数据。
每组数据包含一个整数n,(0≤n≤1000000)。

输出描述:
对应每一组输入有一行输出。
如果F(n)是3的倍数,则输出“Yes”;否则输出“No”。

输入例子:
0
1
2
3
4
5

输出例子:
No
No
Yes
No
No
No

2 解析

NowCoder数列————找规律(斐波那契数列)_递推
通过上图,发现如果(n-2)%4==0,则是3的倍数。于是得到答案。

3 参考代码

#include 

typedef long long ll;

const int MAXN = 100;
ll f[MAXN] = {7,11};

int main(int argc, char const *argv[]){
// for (int i = 2; i < MAXN; ++i) {
// f[i] = (f[i - 1] + f[i - 2]);//递推式//f[20] = 10946
// }
int n;
while(scanf("%d", &n) != EOF){
if((n-2)%4==0)printf("Yes\n");
else printf("No\n");
}
return 0;
}