package cn.dzp.flyroc.offer;
import java.util.Scanner;
public class FieBoNaQieDemo {
/*題目描述:现在要求一输入一个整数n,请你输出斐波那契数列的第n项。n <= 39*/
/*例如:1、1、2、3、5、8、13、21就是一个斐波那契数列,前两项之和等于后一项*/
/*思路:递归的效率低,使用循环方式*/
//代码实现
public static long feibonaqie(int n){
long result = 0; //定义两数之和
long preOne = 0; //定义第一个元素
long preTwo = 1; //定义第二个元素
if (n == 0){ //如果 n = 0
return preTwo;
}
if (n == 1){ //如果n = 1
return preOne;
}
int i;
for (i = 2; i <= n; i++){ //从第三个元素开始遍历
result = preOne + preTwo; //两数之和
preOne = preTwo; //第一个元素变为前一次相加的第二个元素
preTwo = result; //将结果赋值给第二个元素
}
int j = i - 1;
System.out.println("这是菲波那切数列的第"+j