Time Limit: 2 Seconds Memory Limit: 65536 KB
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
no
yes
no
no
no
Author: Leojay
Source: ZOJ Monthly, December 2003
1: #include<iostream>
2: #include<vector>
3: using namespace std;
4: int main(void)
5: {
6: vector<int> fibonacciCount;
7: fibonacciCount.push_back(7);
8: fibonacciCount.push_back(2);
9: int n;
10: while(cin>>n)
11: {
12: if(n >= fibonacciCount.size())
13: {
14: int fibo = 0;
15: for(int i = fibonacciCount.size(); i <= n;i++)
16: {
17: fibo = fibonacciCount[i - 1] + fibonacciCount[i - 2];
18: if(fibo == 19) fibo = 2;
19: else if( fibo > 10) fibo = fibo/10 + fibo%10;
20: fibonacciCount.push_back(fibo);
21: }
22: }
23: switch(fibonacciCount[n])
24: {
25: case 3:case 6:case 9:
26: cout<<"yes"<<endl;
27: break;
28: default:
29: cout<<"no"<<endl;
30: }
31: }
32: return 0;
33: }