2016校赛网络赛B猴子吃桃

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const long long maxn = 10000+5;
long long n, f[maxn];
int main()
{
	f[0] = 0;
	f[1] = 1;
	for (int i = 2; i < 93; i++)
		f[i] = f[i-1] + f[i-2];
	while (cin >> n) {
		for (int i = 1; i < 91; i++) {
			n -= f[i];
			if (n <= 0) {
				if (n + f[i] > f[i-1]) {
					cout << i << ' ' << n+f[i] << endl;
					break;
				}
				else if (n + f[i] <= f[i-1] && f[i-1] != f[i-2]) {
					cout << i-1 << ' ' << f[i-1] << endl;
					break;
				}
				else if (n + f[i] <= f[i-1] && f[i-1] == f[i-2]) {
					cout << i-2 << ' ' << f[i-2] << endl;
					break;
				}
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42397248/article/details/89193344