package chapter_4;
public class Fibonacci {
int i = 1;
int j = 1;
public void fibonacci(int n) {
int time = 0;//初始化计数器
int a = 0;//初始化中间变量
int c[] =new int[n];//记录数列所有值
c[0] = 1;
c[1] = 1;
if (n > 2) {
time = 3;//第三项
while (time < n + 1) {
a = i + j;
j = i;//保存F(n-2)
i = a;//保存F(n-1)
c[time-1] = a;
time++;
}
}
for(int k=0;k<=c.length-1;k++)
{
System.out.println("第"+(k+1)+"个数"+c[k]);
}
}
public static void main(String[] args) {
Fibonacci f = new Fibonacci();
f.fibonacci(6);
}
}
将近半年没写代码,手都生了,于是决定重新看一遍Java编程思想这本书。
p75页的练习9就是写一个程序输出斐波那契数列的前五位。
斐波那契数列的前五项是1,1,2,3,5。.其中第三项是前两项的和。既F(n)=F(n-2)+F(n-1)
很明显,前两项是无法通过动态变量实现的,只能静态定义,于是我设置了两个变量i,j,初始值都为1,
然后新建了一个数组c 在c[0],c[1]保存这两个变量,c的作用是记录斐波那契数列的所有值。
当n等于3的时候,就可以动态计算了。我决定用while循环来写。我设置了中间变量a记录项数为n的时候斐波那契数列的值,并设置了计数器time
n等3时,a=1+1=2.所以a=i+j。当n=4时。a=1+2,所以我令i=a,j=i。i记录F(n-1)的值,j记录F(n-2)的值。具体代码为package chapter_4;