斐波列契数列
Description
斐波列契数列(Faibonacci)0,1,1,2,3,5,8,13,21,34.....求此数列第n项。
即: Fibonacci数列是这样定义的:
F[0]=0;
F[1]=1;
F[n]=F[n-1]+F[n-2], for n>1.
Fibonacci数列的增长速度是惊人的。当n=47时,F[47]=2971215073(>2^31)。由于数列的值增长太快,对于n,你只需要输出F[n]%2147483647
Input
样例输入一:
0
样例输入二:
1
Output
样例输出一:
0
样例输出二:
1
HINT
0<=n<=100000000
python解法
# 从用户处获取输入,并转换为整数
n = int(input(""))
# 如果n为0,斐波那契数列的第0项为0
if n == 0:
print(0)
# 如果n为1,斐波那契数列的第1项为1
elif n == 1:
print(1)
else:
# 初始化斐波那契数列的前两项
numfn1 = 0 # 前一个数
numfn2 = 1 # 当前数
# 从第2项开始循环到第n项
for i in range(2, n + 1):
# 计算当前斐波那契数(前两个数之和)
currentNum = numfn1 + numfn2
# 更新前两个数,为下一次循环做准备
numfn1 = numfn2
numfn2 = currentNum
# 输出斐波那契数列的第n项
print(currentNum)
c++解法
#include<bits/stdc++.h> // 这是一个包含大部分标准库的头文件
using namespace std;
int main() {
long long n; // 定义一个长整型变量n,用于存储输入的数
cin >> n; // 从标准输入读取一个长整型数
// 处理特殊情况:当n为0或1时,直接输出结果
if (n == 0) {
cout << 0 << endl; // 当n为0时,斐波那契数列的第0项为0
}
else if (n == 1) {
cout << 1 << endl; // 当n为1时,斐波那契数列的第1项为1
}
else {
// 初始化斐波那契数列的前两项
long long numfn1 = 0; // numfn1用于存储前一项,初始化为0
long long numfn2 = 1; // numfn2用于存储当前项,初始化为1
// 从第2项开始计算斐波那契数列,直到第n项
for (int i = 2; i <= n; i++) {
// 计算当前项的值,即前两项之和
long long currentNum = numfn1 + numfn2;
// 更新前一项和当前项的值
numfn1 = numfn2; // 前一项变为当前项
numfn2 = currentNum; // 当前项变为新计算出的值
}
// 输出斐波那契数列的第n项
cout << numfn2 << endl;
}
return 0; // 程序正常结束,返回0
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
作者:小鱼
链接:https://www.52stu.com/?p=212
文章版权归作者所有,未经允许请勿转载。
链接:https://www.52stu.com/?p=212
文章版权归作者所有,未经允许请勿转载。
THE END