题目链接:Fibonacci
题意:判断所给的数能不能由斐波那契数组成,如果能输出任意一种组成形式,不能输出-1 。
可以暴力AC
#include<cstdio>
#include<iostream>
using namespace std;
long long num[10000];
long long count[100];
int main (){
num[1]=1;
num[2]=2;
for (int i=3;i<=50;i++){
num[i]=num[i-1]+num[i-2];
}
int n;
scanf ("%d",&n);
while (n--){
long long T;
scanf("%lld",&T);
int k=0;
long long c=T;
for(int i=50;i>=0;i--){
if (num[i]<=T&&T){
count[k++]=num[i];
T=T-num[i];
}
}
if (!T){
printf ("%lld=",c);
for (int i=k-1;i>0;i--){
printf ("%lld+",count[i]);
}
printf ("%lld\n",count[0]);
}
else{
printf ("-1");
}
}
return 0;
}