问题描述
- C++用递归方式求费波拉契数列前20项,要求每5个一行
-
用递归方式求费波拉契数列前20项,要求每5个一行
费波拉契数列是指,第一第二项都是1,后面每一项是前两项之和,1,1,2,3,5,8,13,...
解决方案
Long F(int n)
{if(n==1||n==2) return(1L);
else return(F(n-2)+F(n-1));
}
解决方案二:
方法就是这个,然后自己分行吧
解决方案三:
#include
using namespace std;
int f[21];
int F(int x)
{
if (f[x]) return f[x];
f[x] = F(x-1) + F(x-2);
return f[x];
}
int main()
{
f[1] = f[2] = 1;
for (int i = 1; i <= 20; ++i)
f[i] = F(i);
for (int i = 0; i < 4; ++i)
{
for (int j = 1; j <= 5; ++j)
cout << f[i*5+j] << " ";
cout << endl;
}
return 0;
}
时间: 2024-08-18 07:09:21