例3、斐波那契数列
从第3项开始,每一个数都是前两个数的和
1 1 2 3 5 8 13 21 34....
试编程输出前100项数字
方法一:
fib(1)=1
fib(2)=1
fib(n)=fib(n-1)+fib(n-2)
//常规的循环 (方法二)
int a=1; 1个数
int b=1; 2个数
int c=a+b; 3
a=b;
b=c;
c=a+b;
如此循环
代码如下:
方法一:
public class Fei {
public int func(int n) {
if (n == 1 || n == 2)
return 1;
else
return func(n - 1) + func(n - 2);
}
public void printFei() {
for (int i = 1; i <= 100; i++) {
System.out.println(func(i));
}
}
public static void main(String[] arg) {
Fei he = new Fei();
he.printFei();
}
}
方法2:(更加便捷)
public class Fei {
public int func2(int n) {
if (n == 1 || n == 2)
return 1;
int a=1;
int b=1;
int c=a+b;
int i=4;
while(i<n) {
a=b;
b=c;
c=a+b;
i++;
}
return c;
}
public void printFei() {
for (int i = 1; i <= 100; i++) {
System.out.println(func2(i));
}
}
public static void main(String[] arg) {
Fei he = new Fei();
he.printFei();
}
}
注:主页更多学习资料