Fibonacci数列 改错

img


想问下这道Fibonacci数列这样编写哪里有问题呢,麻烦帮忙改错,谢谢!

请问要输出几个数呢? 我这里是输出31个的,如果需要多少,把代码中对应的31改成你需要的值即可、

#include<iostream>
using namespace std;

// fib() 函数
void fib() {
    int a[31] = {0};
    a[0] = 1;
    a[1] = 1;
    for (int i = 2; i < 31 ; i++) {
        a[i] = a[i-1] + a[i-2];
    }
    
    for (int i = 1; i < 31 ; i++){
        cout << a[i] << endl;
    }

}

int main() {
    fib();
    return 0;
}

主函数main呢?显示的编译错误提示是没有mian函数,你自己写一个main测试提交。

img

我有点菜,要不然就给你点思路和我自己写的实现Fibonacci数列的代码。
Fibonacci数列是这样的:1,1,2,3,5,8,13,21………………
他的递推公式是:f[i]=f[i-1]+f[i-2],即前一个数和前第二个数的和。
如果要写函数的话,是这样的(我自己的拙见……)

#include<bits/stdc++.h>
using namespace std;
int f(int n){
    if(n<=2)return 1;
    return f(n-1)+f(n-2);
} 
int main()
{
    int n;
    cin>>n;
    cout<<f(n);
    return 0;
}

这里用的是递归,当然递推也可以。