2198 - 最简单的难题
时间限制 : 1 秒
内存限制 : 128 MB
我们定义F(0) = 7, F(1) = 11, F(n) = F(n - 1) + F(n - 2)
题目输入
输入数据包括多行,每行一个个数字n(n < 1,000,000)
题目输出
如果F(n)能被3整除就输出yes,不能则输出no
输入/输出样例
输入格式
0 1 2 3 4 5
输出格式
no no yes no no no
C语言解答
#include<stdio.h> int main() { int n, i, a, b, c; while(scanf("%d",&n) != EOF) { a = 1; b = 2; c = 3; for(i = 2; i <= n; i++) { c = (a + b) % 3; a = b; b = c; } if(c == 0) puts("yes"); else puts("no"); } return 0; }
C++解答
#include <cstdio> const int V = 1000000 + 50; int num[V]; int main() { int i, n; num[0] = 1; num[1] = 2; for(i = 2; i < V; ++i) num[i] = (num[i - 1] + num[i - 2]) % 3; while(~scanf("%d", &n)) printf("%s\n", num[n] ? "no" : "yes"); }