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: }