public class Demo2 {
// 定义三个变量方法
public static void main(String[] args) {
int a = 1, b = 1, c = 0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a + "\t" + b + "\t");
//因为前面还有两个1、1 所以i<=18
for (int i = 1; i <= 18; i++) {
c = a + b;
a = b;
b = c;
System.out.print(c + "\t");
if ((i + 2) % 5 == 0)
System.out.println();
}
}
public class Demo3 {
// 定义数组方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for (int i = 0; i < arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + "\t");
}
}
}
public class Demo4 {
// 使用递归方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i - 1) + getFibo(i - 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前20项为:");
for (int j = 1; j <= 20; j++) {
System.out.print(getFibo(j) + "\t");
if (j % 5 == 0)
System.out.println();
}
}
}
这道兔子题的实质就是斐波那契数列: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?,现在从变量、数组、递归三个角度出发解决这个puzzle,当然还有其它的方法,同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼吧。
递归求fn
用java递归 fn=f(n-1)+f(n-2) 求n
public static void main(String[] args) { int a = 1, b = 1, c = 0;System.out.println("斐波那契数列前20项为:");System.out.print(a + "\\t" + b + "\\t");\/\/因为前面还有两个1、1 所以i<=18 for (int i = 1; i <= 18; i++) { c = a + b;a = b;b = ...
java判断一个数是否斐波那契
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。以下是Java代码实现(递归与递推两种方式):import java.util.Scanner;public class Fibonacci { ...
在java中,用递归方法计算n的阶乘。
用Java求键盘输入的数的阶乘n。(递归算法)packagejiecheng; importjava.util.*; \/\/导入java.util包中的所有类classrep{ publiclongrep(intn){ longi=0; if(n==0||n==1) i=1;elsi=n*rep(n-1) returni; } } publicclassJie { publicstaticvoidmain(String[] args) { intn; ...
java实现计算斐波那契数列第n项值的方法是什么?
其实就是一个递归算法,如下:public class Test {public static void main(String[] args) {System.out.println(f(6));}public static int f(int n){if(n==1||n==2){return 1;}else{return f(n-1)+f(n-2);}}} 1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java...
java 编写程序,输出斐波那契数列前30项中的所有质数
public class MSS {\/\/就是从2开始除,到自身的一半 如果都不能整除就是了public static boolean isShuShu(int num) { boolean res = true; for (int i = 2; i < (num \/ 2); i++) { if (num % i == 0) { res = false;} } return res; } \/** * @...
斐波那契数列的性质
1、在数学中,裴波那契数列的递推公式为F(n)=F(n-1)+F(n-2),经过一系列的数学推导,可以发现裴波那契数列的极限为黄金分割比0.618,在金融工程中的黄金分割比率及建筑工程中的黄金比例,都来源于斐波那契数列的规律。2、在计算机算法中,裴波那契数列常被用于解决一些算法问题,例如斐波那契堆...
java用递归编程求斐波那契数列第n项
java.util.Scanner s = new Scanner(System.in);n=s.nextInt();fn=function(n);System.out.println("斐波那契数列第"+n+"项为:"+fn);} public static int function(int n){ if(n==1 || n==2) return 1;return function(n-1)+function(n-2);} } 希望能帮到你,其实和c语言...
递归法求n的阶乘算法
1.回推 求n的阶乘可以描述如下:n!=n*(n-1)!(n-1)!=(n-1)*(n-2)!(n-2)!=(n-2)*(n-3)!(n-3)!=(n-3)*(n-4)!...2!=2*1!1!=0!0!=1 1!=1 如果把n!写成函数形式,即f(n),则f(5)就是表示5!。求5!的过程可以写成如下形式:f(5)=5*f(4)f(4)=4*f(...
详解Java递归(Recursion)通过递归解决迷宫回溯及八皇后问题
一.打印问题public static void test(int n){if(n > 2){test(n - 1);}System.out.println("n="+n);} 递归调用规则 当程序执行到一个方法时候,就会开辟一个独立的空间(栈)。每个空间的数据(局部变量),是独立的。控制台运行结果 二.阶乘问题public static int factorial(int n){if(n ...
用递归方法求n阶
递归求n阶的方法如下:递归实现n的阶乘什么是阶乘:0! = 1,n! =n * (n - 1) * (n - 2)...3 *2 * 1; 解题思路: 1> 分析题意,很明显0是递归出口; 2> 很好看出,递归调用自己,直到n等于0,返回之前的函数,直到最后一个; 3> 一个简单n的阶乘就计算完成,返回并输出。菲...