#include<stdio.h>
int Fibon2(int n);
int main(void)
{
int n;
scanf("%d",&n);
Fibon2(n);
return 0;
}
int Fibon2(int n)
{
int i=0,temp=0,num1=1,num2=1;
for(i=1;i<=n;i++)
{
temp=num1+num2;
num1=num2;
num2=temp;
printf("%d\n",temp);
}
return temp;
}
#include <stdio.h>
int fib(int n) {
int num1 =1;
int num2 = 1;
int tmp;
if (n <= 0) { // 等于0未判断
return 0;
} else if (n < 3) {
return 1;
} else {
for (int i = 0; i <= n - 3; ++i) {
tmp = num1 + num2;
num1 = num2;
num2 = tmp;
}
return tmp;
}
}
int main(){
int n = 0;
while (1) {
printf("请输入要求的斐波那契数:");
scanf("%d", &n);
printf("%d\n", fib(n));
}
return 0;
}
用递归就行
public int Fibonacci(int n) {
if(n == 0) {
return 0;
}
if(n == 1) {
return 1;
}
return Fibonacci(n-1) + Fibonacci(n-2);
}
你没有写main发方法,肯定运行不了,c语言中 main方法是程序的执行入口。
没有写主函数
你看看是不是没有定义当n等于0时输出0
你只写了递归函数部分,你需要写个主函数,然后调用函数输出结果,头文件也不能忘
//直接输出
#include <iostream>
using namespace std;
int main()
{
long long a[56];
//int a[46];
int i;
a[0]=1;
a[1]=1;
for(i=2;i<56;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<56;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
return 0;
}
//输入n,输出第n项
#include <iostream>
using namespace std;
int main()
{
long long a[56];
//int a[46];
int i,n;
cin>>n;
a[0]=1;
a[1]=1;
for(i=2;i<56;i++)
{
a[i]=a[i-1]+a[i-2];
}
cout<<a[n-1]<<endl;
return 0;
}
如有帮助,求采纳
你这个不对