#include
int main()
{
int f1=1,f2=1,i=1,n,s;
scanf("%d",&n);
if(n==1) //判断时候是要两个等号下同
printf("1");
if(n==2)
printf("1");
else
{
while(i<=n-2)
{
s=f1+f2;
f1=f2;
f2=s;//你那个算法好像不对这样就可以了
i=i+1;
}
printf("%d\n",s);
}
}//及时采纳
#include
int main()
{
int f1=1,f2=1,i=1,n,s;
scanf("%d",&n);
if(n=1) //这个地方应该是n==1
printf("1");
if(n=2) //这个地方应该是n==2
printf("1");
else //这个else用的不对应该是if(n>=3)要不然的话除了2都进入就不对了
{
while(i<=n-2)
{
f1=f1+f2; //这个算法不太对
s=f1;
i=i+1;
f2=f1+f2;
s=f2;
i=i+1;
}
printf("%d\n",s);
}
}
我写了个用函数递归
#include
int add(int);
int main()
{
int s,n;
scanf("%d",&n);
if(n==1)
printf("s==1\n");
if(n==2)
printf("s==1\n");
if(n>=3)
{
s=add(n);
printf("s==%d\n",s);
}
return 0;
}
int add(int n)
{
int ss;
if(n<0)
printf("n<0,input error");
else if(n==1||n==2)
ss=1;
else
ss=add(n-1)+add(n-2);
return ss;
}
#include
using namespace std;
int Fibonacci(int a)
{
if (a == 1 || a == 2)
return 1;
else if (a > 2)
return Fibonacci(a - 1) + Fibonacci(a - 2);
} // 计算第a个斐波拉契数的函数
int main()
{
int n, a, i;
cin >> n;
for (i = 1; i <= n; i++)
{
cin >> a;
cout << Fibonacci(a) << endl;
}
return 0;
}
这样比较简单
某些OJ网站对C/C++要求主函数用int main(),而且最后要加上return 0;