xtu oj 1375 Fabonacci

2023-12-17 14:56:25

题目描述

小明非常喜欢Fibonacci数列,数列为?f1=1,f2=2,fn=fn?1+fn?2。 小明想知道对于一个整数n,使得n=fi+fj+fk的组合有多少种? 比如5=1+1+3?或者?5=1+2+2,有2种。注意?1+2+2?和?2+1+2?被认为是同一种。

输入

第一行是一个整数T(1≤T≤1000),表示样例的个数。

每个样例是一个整数n(3≤n≤109)。

输出

依次每行输出一个样例的结果,为一个整数。

样例输入

2
3
5

样例输出

1
2

AC代码

#include<stdio.h>?
#define?N?100000
int?f[N]={};
void?init(){
????f[0]=1,f[1]=1;
????int?i;
????for(i=2;i<45;i++){
????????f[i]=f[i-1]+f[i-2];
????}
}
int?main(){
????int?T;
????scanf("%d",&T);
????init();
????while(T--){
????????int?i,j,k;
????????int?n,cnt=0;
????????scanf("%d",&n);
????????for(i=1;i<45;i++){
????????????for(j=i;j<45;j++){
????????????????for(k=j;k<45;k++){
????????????????????if(f[i]+f[j]+f[k]==n){
????????????????????????cnt++;
????????????????????}
????????????????}
????????????}
????????}
????????printf("%d\n",cnt);
????}
}

文章来源:https://blog.csdn.net/m0_75005390/article/details/135044054
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。