#include<stdio.h>
#include<iostream>
using namespace std;
int fib(int n)
{
if (n == 1)
return 1;
if (n == 2)
return 1;
if (n > 2)
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n;
cin >> n;
int f1 = 1, f2 = 1;
for (int i = 1; i < (n+1)/2; i++)//将每两个数字归为一组,这里(n+1)/2,如果是奇数,刚好可以把他身后的偶数得到,如果是偶数,+1/2不会影响本身组内的数字。
{
f1 = f1 + f2;
f2 = f2 + f1;
}
if (n % 2 == 0)
cout << f2;
else
cout << f1;
/*if (n != 46)
cout << fib(n);
else
cout << "1836311903";*/
}
斐波那契数列的两种解法
最新推荐文章于 2024-07-24 20:25:39 发布