刷题第一天(很简单的一道Fibonacci数列题目)
题目如下:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)
解题思路:
由于是第一次开始刷题,所以先看了一个简单的,今天就刷了这一道简单的题,学了会儿JS,写了其他科目的实验报告。结束!!!
希望自己能成为更好的自己
什么是斐波那契数列:
简单来说,就是一个有规律的数集,规律如下:
F(1) = 1
F(2) = 1
F(n) = F(n - 1) + F(n - 2) (n ≥ 3,n ∈ N*)
斐波那契数列的实现方式(一)--------递归
从上述表达式中可以明显看出,斐波那契数列从第3项(从第0项数起)开始为前两个数的和(即:0,1,1,2,3……)
所以可以用递归的方式写;
C语言示例:
int Fibonacci(int n ) {
if(n==0)
return 0;
if(n==1)
return 1;
return (Fibonacci(n-1)+Fibonacci(n-2));
}
此处只写了Fibonacci函数,没有写主函数
斐波那契数列的实现方式(二)--------循环
既然可以用递归的方式做,那么循环也可以,因为按理说,所有的递归可以被循环替代
C语言:
int Fibonacci(int n ) {
int a=0,b=1;
int sum=0;
if(n==1)sum=1;
for(int i=2;i<=n;i++){
sum = a+b;
a=b;
b=sum;
}
return sum;
}
很明显,运行后时间上比上述递归要快,但是代码量要多,内存占用也更大一些。
斐波那契数列的实现方式—JS
https://blog.csdn.net/u014399368/article/details/80526876
https://blog.csdn.net/u014399368/article/details/80526876
这个JS
实现方式我还不太会,其实本来想用JS写的,但是对JS的掌握度还不够,就先用C写一个较为基础的思想的代码
看到其他有用python写的,还用了生成器和矩阵的方式。