public class Fibonacci {
/*输出斐波那契数*/
public static void printFibonacciNumber(long f1,long f2,int n){//the first number, the second number,the totel fibonacci numbers
for(int i = 1;i <= n;i++){
System.out.print(f1+" "+f2+" ");//先输出前两个数
if(i % 5 == 0)System.out.print("\n"); //换行
f1 = f1+f2; //计算下两个数
f2 = f1+f2;
}
/*后数除前数为黄金分割点*/
System.out.print("\n"+"-------------------------------------"+"\n");
System.out.println((double)f2/f1);//越到后边,后数除前数越接近黄金分割点
}
/*输出斐波那契数组*/
public static void printFibonacciArray(long f1,long f2,int n){//the first number, the second number,the totel fibonacci numbers
long f[] = new long[n];
f[0]=f1;
f[1]=f2;
for(int i =2;i
f[i]=f[i-2]+f[i-1]; //数组的第三个数开始为前两个数的和
}
System.out.println("-------------------------------------"+"\n");
System.out.println(java.util.Arrays.toString(f)); //把数组转化成String输出
}
/**
* main method
* @param args
*/
public static void main(String[] args) {
Fibonacci.printFibonacciNumber(0, 1, 10);//print the 20 advanced fibonacci number
Fibonacci.printFibonacciArray(0, 1, 20);
}
}
希望能帮到你。
追问俺是初学者 能不能说的直白一些
追答你就看看这几个数字的特点,其实就是利用递归,重复调用方法本身,就是这样。建议你花店时间去看看java的迭代技术。
追问哦谢谢哦 刚发现烦了逻辑错误了