Revenge of Fibonacci
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 6 Accepted Submission(s) : 2
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation
Fn = Fn-1 + Fn-2
with seed values F1 = 1; F2 = 1 (sequence A000045 in OEIS).
---Wikipedia
Today, Fibonacci takes revenge on you. Now the first two elements of Fibonacci sequence has been redefined as A and B. You have to check if C is in the new Fibonacci sequence.
Fn = Fn-1 + Fn-2
with seed values F1 = 1; F2 = 1 (sequence A000045 in OEIS).
---Wikipedia
Today, Fibonacci takes revenge on you. Now the first two elements of Fibonacci sequence has been redefined as A and B. You have to check if C is in the new Fibonacci sequence.
Input
The first line contains a single integer T, indicating the
number of test cases.
Each test case only contains three integers A, B and C.
[Technical Specification]
1. 1 <= T <= 100
2. 1 <= A, B, C <= 1 000 000 000
Each test case only contains three integers A, B and C.
[Technical Specification]
1. 1 <= T <= 100
2. 1 <= A, B, C <= 1 000 000 000
Output
For each test case, output “Yes” if C is in the new Fibonacci
sequence, otherwise “No”.
Sample Input
3 2 3 5 2 3 6 2 2 110
Sample Output
Yes
No
Yes
Hint
For the third test case, the new Fibonacci sequence is: 2, 2, 4, 6, 10, 16, 26, 42, 68, 110…
Source
BestCoder Round #10
1 #include<stdio.h> 2 long long set[10000100]; 3 int main() 4 { 5 int t; 6 scanf("%d",&t); 7 while(t--) 8 { 9 long long a,b,c,i; 10 scanf("%lld %lld %lld",&a,&b,&c); 11 set[0]=a; set[1]=b; 12 if(a==c||b==c) //无数次栽在初始条件判断上; 13 printf("Yes "); 14 else 15 { 16 for(i=2;;i++) 17 { 18 set[i]=set[i-1]+set[i-2]; 19 if(set[i]==c) 20 { 21 printf("Yes "); 22 break; 23 } 24 if(set[i]>c) 25 { 26 printf("No "); 27 break; 28 } 29 } 30 } 31 } 32 return 0; 33 }