用递归算法实现斐波那契数列1,1,2,3,5,8,13……的前20项,每输出5项一换行,用C++

2024-11-27 06:29:21
推荐回答(2个)
回答1:

#include
using namespace std;

int f(int n)
{
    if (n == 1 || n == 2)
    {
        return 1;
    }

    return f(n -1) + f(n-2);
}

int main()
{
   for (int i = 1; i <= 20; i++)
   {
       cout << f(i) ;

       if (i % 5 == 0 && i != 0)
       {
           cout << endl;
       }
       else
       {
            cout << ",";
       }
   }
   return 0;
}

运行结果:

回答2:

#include 
#include 
using namespace std;

int Fibo(int i) {
if (i <= 2) return 1;
else return Fibo(i - 1) + Fibo(i - 2);
}

int main() {
for (int i = 1; i <= 20; i++) {
cout << setw(5) << right << Fibo(i);
if (i % 5 == 0) cout << endl;
}
}