17:菲波那契数列
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入
输入一行,包含一个正整数k。 (1 <= k <= 46)
输出
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
示例输入
19
示例输出
4181
分析
利用for() 循环进行x1,x2叠加实现斐波那契数列。
代码
#include <iostream>
using namespace std;
int main()
{
int n, i, x1 = 1, x2 = 1;
cin >> n;
if (n <= 2) //前两个数
{
cout << "1" << endl;
}
else
{
if (n % 2 == 0) //偶数
{
for (i = 1;i <= (n - 2) / 2;i++)
{
x1 = x1 + x2;
x2 = x2 + x1;
}
cout << x2 << endl;
}
else //奇数
{
for (i = 1;i <= (n - 1) / 2;i++)
{
x1 = x1 + x2;
x2 = x2 + x1;
}
cout << x1 << endl;
}
}
return 0;
}