#include <iostream>
#include <algorithm>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
int fibnacci(int f1,int f2,int n)
{
int i;
if(n==0)return 0;
else if(n==1)return f1;
else if(n==2)return f2;
else
{
for(i=1;i<=n-2;i++)
{
if(i%2)f1=f1+f2;
else f2=f1+f2;
}
if(i%2)return f2;
else return f1;
}
}
int main()
{
int N,M;
scanf("%d",&N);
while(N--)
{
scanf("%d",&M);
printf("%d\n",fibnacci(1,2,M-1));
}
return 0;
}
总结
1.要注意跨上n级和跨到n级的区别
2.递推算法
3.刚好是fibonacci数列