AcWing 741. 斐波那契数列
原题链接
简单
作者:
ShadowJade
,
2024-02-16 10:27:38
,
所有人可见
,
阅读 35
//AcWing 741. 斐波那契数列
/*
输入整数 N,求出斐波那契数列中的第 N 项是多少。
斐波那契数列的第 0 项是 0,第 1 项是 1,从第 2 项开始的每一项都等于前两项之和。
输入格式
第一行包含整数 T,表示共有 T 个测试数据。接下来 T 行,每行包含一个整数 N。
输出格式
每个测试数据输出一个结果,每个结果占一行,
结果格式为 Fib(N) = x,其中 N 为项数,x 为第 N 项的值。
数据范围
0≤N≤60
输入样例:
3
0
4
2
输出样例:
Fib(0) = 0
Fib(4) = 3
Fib(2) = 1
*/
#include <stdio.h>
// 计算斐波那契数列的第 n 项,返回结果
long long fibonacci(int n) {
// 当 n 为 0 时,返回 0
if (n == 0) {
return 0;
}
// 当 n 为 1 时,返回 1
else if (n == 1) {
return 1;
}
// 初始化前两项为 0 和 1
long long a = 0, b = 1;
// 循环计算第 n 项
for (int i = 2; i <= n; i++) {
// 计算当前项的值
long long tmp = a + b;
// 更新前两项的值
a = b;
b = tmp;
}
// 返回第 n 项的值
return b;
}
int main() {
int T;
scanf("%d", &T);
// 处理 T 组测试数据
for (int i = 0; i < T; i++) {
int N;
scanf("%d", &N);
// 计算第 N 项的值
long long result = fibonacci(N);
// 输出结果
printf("Fib(%d) = %lld\n", N, result);
}
return 0;
}