package com.example.demo.subject1;
/**
* @version: 1.00.00
* @description: 斐波那契数列
* 0,1,1,2,3,5,8
* @author: zhangronghang
* @date 2021/4/17 0:36
*/
public class Fibonacci {
public static void main(String[] args) {
Fibonacci fibonacci = new Fibonacci();
int fibonacci1 = fibonacci.fibonacci(4);
System.out.println(fibonacci1);
}
// /**
// * 牛客网编译不过,很烦
// * @param n n
// * @return 结果
// */
// public int fibonacci(int n) {
// if(n == 0) {
// return 0;
// }
// if (n == 1) {
// return 1;
// }
//递归
// return fibonacci(n-1) + fibonacci(n -2);
// }
/**
* 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
* n\leq 39n≤39
* @param n
* @return
*/
public int fibonacci(int n) {
if(n == 0) {
return 0;
}
if(n == 1) {
return 1;
}
//设置当前位和前一位
int a = 1;
int b = 0;
for (int i = 0 ; i < n-1 ; i++) {
//保存当前位
int x = b;
//前一位数据后移
b = a;
//计算当前位数据
a = a + x;
}
//返回
return a;
}
}