苏牛的代码,利用数组算斐波那契苏烈
# include <stdio.h>
# include <math.h>long long dp[55] = {0, 1} ;
int main ()
{
int i, n ;
for (i = 2 ; i<= 50 ; i++)
dp[i] = dp[i-1]+dp[i-2] ;
while (~scanf ("%d", &n))
{
if (n < 0) break ;
printf ("%I64d\n", dp[n]) ;
}
}
自己的暴力解法
#include<stdio.h>
int main()
{
__int64 a,b,i,j,n;
while(scanf("%I64d",&n)!=EOF)
{
a=0,b=1;
if(n==0)
{
j=a;
printf("%I64d\n",j);
}
else if(n==1)
{
j=1;
printf("%I64d\n",j);
}
else if(n>1&&n<51)
{
for(i=1;i<n;i++)
{
j=a+b;
a=b,b=j;
}
printf("%I64d\n",j);
}
else break;
}
return 0;
}