题目描述
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
i = 0 7 NO
i = 1 11 NO
i = 2 18 YES
i = 3 29 NO
i = 4 47 NO
i = 5 76 NO
i = 6 123 YES
i = 7 199 NO
i = 8 322 NO
i = 9 521 NO
i = 10 843 YES
i = 11 1364 NO
i = 12 2207 NO
首先得出的结论是i是偶数(i % 2 == 0),接着把i / 2,发现是1、3、5、7、9…,因此可得出i / 2的结果是奇数,最终优化为i % 4 == 2
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int number = 0;
while (scanf("%d", &number) != - 1) {
if (number % 4 == 2) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}