【CUGBACM15级BC第10场 A】hdu 5018 Revenge of Fibonacci

xiaoxiao2021-02-28  92

Revenge of Fibonacci

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1288    Accepted Submission(s): 605 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 Hint For the third test case, the new Fibonacci sequence is: 2, 2, 4, 6, 10, 16, 26, 42, 68, 110…   题意:ab为斐波那契数列前两项,问你c 是不是斐波那契数列里面的数

思路:水题,直接模拟即可

#include <iostream> #include <set> #include <map> #include <stack> #include <cmath> #include <queue> #include <cstdio> #include <bitset> #include <string> #include <vector> #include <iomanip> #include <cstring> #include <algorithm> #include <functional> #define PI acos(-1) #define eps 1e-8 #define inf 0x3f3f3f3f #define debug(x) cout<<"---"<<x<<"---"<<endl typedef long long ll; using namespace std; int main() { int t; ll a, b, c; scanf("%d", &t); while (t--) { scanf("%lld %lld %lld", &a, &b, &c); if (c == a || c == b) { printf("Yes\n"); } else if (c < a) { printf("No\n"); } else { ll xx = a; int flag = 0; while (xx <= c) { if (xx == c) { flag = 1; } xx = a + b; a = b; b = xx; } if (flag == 1) { printf("Yes\n"); } else { printf("No\n"); } } } return 0; }
转载请注明原文地址: https://www.6miu.com/read-54453.html

最新回复(0)