蓝桥杯JAVA Fibonacci数列

来源:互联网 发布:免费网管控制软件 编辑:程序博客网 时间:2024/05/16 04:19

比较基础的一道题,可用循环或者递归,以下是我以前用的三种方式写的

1.循环

//数组
<pre name="code" class="java">public static int FibonacciByCycle1(int indexNum){int[] Fibonacci=new int[indexNum];if(indexNum<=2){return 1;}else{Fibonacci[0]=1;Fibonacci[1]=1;for(int i=2;i<indexNum;i++){Fibonacci[i]=(Fibonacci[i-1]+Fibonacci[i-2])%10007;}return Fibonacci[indexNum-1];}}

//用变量public static int FibonacciByCycle(int indexNum){int FibonacciFrontOne=1;int FibonacciFrontTwo=1;int FibonacciCenter=1;for(int i=2;i<indexNum;i++){FibonacciCenter=FibonacciFrontOne+FibonacciFrontTwo;if(FibonacciCenter>=10007){FibonacciCenter=FibonacciCenter%10007;}FibonacciFrontTwo=FibonacciFrontOne;FibonacciFrontOne=FibonacciCenter;}return FibonacciCenter;}

2.递归

public static int FibonacciByRecurse(int indexNum){if(indexNum<=2){return 1;}else{return FibonacciByRecurse(indexNum-1)+FibonacciByRecurse(indexNum-2)%10007;}}



0 0
原创粉丝点击