[TIOJ] 1751. Ch1. Section 1. 愛的啟程
題目連結:http://tioj.infor.org/problems/1751
本題就直接每次都拿不比他大中最大的那個換,所以就把再int範圍內的費式數列倒著跑一遍,每當比他小就把原數扣掉他,最後驗原數是不是被換成0了就好了
int範圍內的費式數列共有46個
本題就直接每次都拿不比他大中最大的那個換,所以就把再int範圍內的費式數列倒著跑一遍,每當比他小就把原數扣掉他,最後驗原數是不是被換成0了就好了
int範圍內的費式數列共有46個
#include <bits/stdc++.h>
using namespace std;
vector<int> f;
int main(){
f.push_back(1);
f.push_back(1);
for(int i=2;i<46;i++)
f.push_back(f[i-1]+f[i-2]);
int t;
scanf("%d",&t);
while(t--){
int n,ans=0;
scanf("%d",&n);
for(int i=f.size()-1;i>0;i--){
if(f[i]<=n){
n-=f[i];
ans++;
}
}
if(n==0) printf("%d\n",ans);
else puts("iyada~");
}
return 0;
}
留言
張貼留言