Problem F: Fibonacci Again
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 64 Solved: 18
[ Submit][ Status][ Web Board]
Description
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
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">0 1 2 3 4 5</span>
Sample Output
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">no no yes no no no</span>
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">这题目要是用常规算法递归计算的话,在比赛中会超时,提交不了,所以还要靠数学思维,得看出规律!</span>
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">0 7 %3 1 也就是这样的规律,在数学上交求模公式!</span>
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">1 11 2</span>
<span class="sampledata" style="font-family: monospace; font-size: 18px; white-space: pre; background-image: none; background-attachment: scroll; background-color: rgb(141, 184, 255); background-position: 0px 0px; background-repeat: repeat repeat;">2 18 0</span>
<span style="font-size: 18px;">3 29 2</span>
<span style="font-size: 18px;">4 47 2</span>
<span style="font-size: 18px;">5 76 1</span>
<span style="font-size: 18px;"></span><pre name="code" class="cpp">#include <stdio.h> int main() { int n,i,a,b,sum; while(scanf("%d",&n)!=EOF) { if(n==0||n==1) { printf("no\n"); } else { a=7; b=11; for(i=2;i<=n;i++) { a=a%3; b=b%3; sum=(a+b)%3; a=b; b=sum; }//就是求模公式! if(sum==0) printf("yes\n"); else printf("no\n"); } } }