大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39
先说斐波那契,简单的来说是这样一组数据:
1,1,2,3,5,8,13,21,34,55……
是这个样子的,第一项是1,第二项是1,第三项是2……
以此类推,从第三项开始,每个数都是前两个数之和。
public static int Fibonacci(int n) {
//先排除参数错误的情况
if (n<=0){
return 0;
}
//如果没有错误出现,解决特殊情况n为1和n为2的情况下,第n项都是1
if (n==1||n==2){
return 1;
}
//普遍情况下,设置a和b为1. 依次前挪
int a=1;
int b=1;
while (n>2) {
//b是我们想返回的值,在n+1的情况下,它是更大的值
b = a+b;
a = b-a;
n--;
}
return b;
}
应该理解起来没啥问题,很简单的一段小程序,这里说一下,个人认为不要轻易使用递归!因为可能会报出StackOverflowException异常。
如果给了个超大的值,很容易爆出异常!