XDU-1139 猴子吃桃 II (水~斐波那契数列求和)
题目链接
题意:若桃子无限提供,第i个猴子可分到F(i)个桃子(斐波那契数列) ,当n个桃子被猴子瓜分掉,求分到最多的猴子的位置和桃子数 (相等输出靠前) ,考虑前两种情况 a[i]+t \ a[i-1] \ a[i-2],如 n = 3,应该输出1 1
#include"iostream"
using namespace std;
long long sum,a[100],i;
void f(){
a[0] = 0;
a[1] = 1;
long long sum;
for(i=2; i<=92; i++){
a[i] = a[i-1] + a[i-2];
// cout<<i<<' '<<a[i]<<endl;
}
}
int main(){
f();
long long t;
while(cin>>t){
for(i=1; i<=90; i++){
t = t - a[i];
if(t<=0){
if(t+a[i]>a[i-1]){
cout<<i<<' '<<t+a[i]<<endl;
break;
}
else if(t+a[i]<=a[i-1] &&a[i-1]==a[i-2]){
cout<<i-2<<' '<<a[i-2]<<endl;
break;
}
else if(t+a[i]<=a[i-1] &&a[i-1]!=a[i-2]){
cout<<i-1<<' '<<a[i-1]<<endl;
break;
}
}
}
}
return 0;
}