https://ac.nowcoder.com/acm/contest/3005/A
如果已知 gcd(a,b) 共递归了 n次,求所有可能的a,b中满足a>b>=0且a+b最小的一组的a与b之和。
思路
可知,也就是说没多一次递归,a=a+b,b=a,这不就一斐波那契数列吗,直接写就行了
#include <bits/stdc++.h>
#define mem(a, b) memset(a, b, sizeof a)
#pragma warning (disable:4996)
#pragma warning (disable:6031)
using namespace std;
typedef long long ll;
ll f[100];
int main()
{
int t;
scanf("%d", &t);
int n;
f[0] = 1;
f[1] = 3;
f[2] = 5;
for (int i = 3; i <= 80; i++) {
f[i] = f[i - 1] + f[i - 2];
}
while (t--) {
scanf("%d", &n);
printf("%lld\n", f[n]);
}
return 0;
}