#include <stdio.h>
// 计算第 n 项的斐波那契数
int fibonacci_at(int n)
{
/*
* f1 : 比喻为指针,一开始指向第一项数
* f2 : 比喻为指针,一开始指向第二项数
* result : 由 f1 和 f2 求和而来,即为第三项的数
*
* 如在这样的斐波那契数列中:1, 1, 2, 3, 5, 8 ...
* f1 和 f2 的指向为: f1 f2
*/
int f1 = 1, f2 = 1, result = f1 + f2;
if (n < 3)
{
return 1;
}
/*
* 在这样的斐波那契数列中,只在计算第4项数才开始向右移动 f1 和 f2
*
* 计算第3项:1, 1, 2, 3, 5, 8 ...
* f1 f2
* 计算第4项:1, 1, 2, 3, 5, 8 ...
* f1 f2
* 计算第5项:1, 1, 2, 3, 5, 8 ...
* f1 f2
*/
while (n-- > 3)
{
f1 = f2;
f2 = result;
result = f1 + f2;
}
return result;
}
int main() {
int n = 0;
scanf("%d", &n);
printf("%d", fibonacci_at(n));
return 0;
} x=int(input()) a=1 b=1 for i in range(1,x-1): if i%2==0:b+=a else:a+=b print(max(a,b))
#include <stdio.h>
int main()
{
int n =0,i=0;
int arr[46]={1,1};
scanf("%d\n",&n);
if(n<=2)
{
printf("%d",arr[n-1]);
}
else if(n>=3)
{
for (i=0;i<=n-2;i++)
{
arr[i+2]=arr[i+1]+arr[i];
}
printf("%d",arr[n-1]);
}
return 0;
} #include <iostream>
#include <cassert>
int fibonacci_sequence(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return fibonacci_sequence(n - 1) + fibonacci_sequence(n - 2);
}
}
int main()
{
int n;
// std::cout << "请输入一个正整数:";
std::cin >> n;
// std::cout << "您输入的正整数是:" << n << "\n";
assert(n >= 1 && n <= 46);
std::cout << fibonacci_sequence(n) << "\n";
return 0;
}