递归的意思是调用方法本身,你连方法都没有定义,何来递归?举个栗子:public class TestWL {
public static int fab(int index) {
if (index == 1 || index == 2) {
return 1;
} else {
return fab(index - 1) + fab(index - 2);
}
}
public static void main(String[] agrs) {
int fab = TestWL.fab(12);
System.out.println(fab);
}
}
public static int fab(int index) {
if (index == 1 || index == 2) {
return 1;
} else {
return fab(index - 1) + fab(index - 2);
}
}
public static void main(String[] agrs) {
int fab = TestWL.fab(12);
System.out.println(fab);
}
}
for (int i = 1; i > 2; i++) {
这个永远也不会执行循环里的东西还是帖的代码不对?
public class Test{
public static void main(String[] args){
int sum1 = 1;
int sum2 = 1;
int sum = 1;
for(int i=3;i<41;i++){ sum1 = sum2;
sum2 = sum;
sum = sum1+sum2;
}
System.out.println(sum); }
}
稍微改了下
/**
* F(1) = 1, F(2) = 1
* F(N) = F(N - 1) + F(N - 2)
*
* @author Administrator
*
*/
public class Fibonacci { /**
* 用递归的方式实现Fibonacci
*
* @param n
* @return
*/
public int fibonacciRecursive(int n) {
if (n <= 2) {
return 1;
}
return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
} /**
* 用非递归的方式实现Fibonacci
*
* @param n
* @return
*/
public int finonacciNormal(int n) {
if (n <= 2) {
return 1;
} int a1 = 1;
int a2 = 1;
int an = 0; for (int i = 2; i < n; i++) {
an = a1 + a2;
a1 = a2;
a2 = an;
System.out.print(i+"=");
System.out.println(an);
} return an;
} public static void main(String[] args) {
Fibonacci fibonacci = new Fibonacci(); System.out.println("fibonacciRecursive==="
+ fibonacci.fibonacciRecursive(40));
System.out
.println("finonacciNormal===" + fibonacci.finonacciNormal(40));
}
for (int i = 1; i < j; i++) {
ar = a1 + a2;
atemp = a2;
a1 = a2;
a2 = ar;
System.out.println(ar);
}
package des;public class FibonacciDemo { public static long fib(int n) {
long f1 = 1, f2 = 1;
long m = 0;
if(n <= 2) {
return 1;
} else {
for(int i = 3; i <= n; i++) {
m = f1 + f2;
f2 = f1;
f1 = m;
}
return m;
}
}
public static void main(String [] args) {
long m = fib(40);
System.out.println("Fibonacci(40) is " + m);
}
}
结果:Fibonacci(40) is 102334155
{
int[] fab = new int[40];
for (int i = 0; i <40; i++)
{
if (i == 0 || i == 1)
{
fab[i]=1;
}
else
{
fab[i] = fab[i-1] + fab[i-2];
}
System.out.println(fab[i]);
}
}