斐波那契数列大家都是很熟悉的,这里就不多说了,写这个纯碎就是把之前的算法什么的都在来一遍温习一下,关于斐波那契的讲解网上有很多的原理和实现,这里我推荐一个不错的讲解。
关于斐波那契数列有两种版本:
第一种:0,1,1,2,3,5,8,...
第二种:1,1,2,3,5,8,13,...
两种版本区别也仅仅是在首项的不同,所以如果是做题目的话,根据需要选择吧,下面是python的具体的实现:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:斐波那契数列的实现,输入n,输出Fibonacci数列的第n项
'''
def Febonacci_test(n):
'''
输入:n
输出:Fibonacci数列的第n项
'''
fibonacci_list=[1,1]
if n<=0:
return 0
elif n==1 or n==2:
return 1
else:
for i in range(2,n):
fibonacci_list.append(fibonacci_list[i-1]+fibonacci_list[i-2])
return fibonacci_list[-1]
if __name__ == '__main__':
print Febonacci_test(7)
下面是Java的具体实现:
package offer;
//__Author__:沂水寒城
//功能:斐波那契数列的实现,输入n,输出Fibonacci数列的第n项
public class Fibonacci_test {
public static int fibonacci_list(int n) {
int first_num=1
int second_num=1
int new_temp
if (n <= 0)
return 0;
if (n == 1 || n == 2)
return 1;
for (int i = 3; i <= n ; i++) {
new_temp = first_num + second_num;
first_num = second_num;
second_num = new_temp;
}
return new_temp;
}
public static void main(String[] args) {
System.out.println(fibonacci_list(7));
}
}
输出结果:
第7项都是:13
继续学习...