您的位置:首页 > 其它

hdu 5018 Revenge of Fibonacci(模拟)

2015-08-16 21:06 525 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5018


Revenge of Fibonacci

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 940 Accepted Submission(s): 427



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.



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



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
HintFor the third test case, the new Fibonacci sequence is: 2, 2, 4, 6, 10, 16, 26, 42, 68, 110…


这题真不难,直接模拟就行。

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    //freopen("cin.txt","r",stdin);
    int t;
    cin>>t;
    while(t--){
        int a,b,c;
        scanf("%d %d %d",&a,&b,&c);
        int q1=a,q2=b,q=a+b;
        if(c==q1 || c==q2 || c==q){
            printf("Yes\n");
            continue;
        }
        while(q<c){
            a=b;
            b=q;
            q=a+b;
        }
        if(q==c)  printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: