
代碼如下
#include<stdio.h>
long long int Fibonacci(int a){
int i;
long long int f1=1,f2=1,f3;
if(a<=2)
return 1;
else{
for(i=3;i<=a;i++){
f3=f1+f2;
f1=f2;f2=f3;
}
return f3;
}
}
int main(){
int i,n,a;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a);
printf("%lld\n",Fibonacci(a));
}
return 0;
}
答案錯誤,請問大佬問題出在了哪里
uj5u.com熱心網友回復:
應該還是溢位的問題吧,你換成double型別的試試看#include<stdio.h>
double Fibonacci(int a)
{
int i;
double f1 = 1,f2 = 1,f3;
if(a <= 2) return 1;
else
{
for(i = 3 ; i <= a ; i ++)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
}
int main()
{
int i,n,a;
scanf("%d",&n);
for(i = 0 ; i < n ; i ++)
{
scanf("%d",&a);
printf("%.0f\n",Fibonacci(a));
}
return 0;
}
uj5u.com熱心網友回復:
#include<stdio.h>
int Fibonacci(int a){
if(a<=2)
return 1;
else{
return Fibonacci(a-1)+Fibonacci(a-2);
}
}
int main(){
int i,n,a;
scanf("%d",&n);
for(i=1;i<n;i++){
printf("%d\n",Fibonacci(i));
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35882.html
標籤:C語言
上一篇:c++
