public class Jiafa
{
public static void main(String[] args) {
for(int i=1;i<=7;i++){
System.out.print(f(i)+" ");
}
} public static int f(int n) {
if (n == 1 || n == 2) {
return 1;
}
else {
return f(n - 1) + f(n - 2);
}
}
}
输出结果:1 1 2 3 5 8 13
这是一道java逻辑运算题!!
我想问下这个递归是如何想到的,当我看到这道题的时候没有思路,思路是从哪点推出来的,虽然我看见代码知道如何来运行,但是始终想不出来为什么这道题会这样作出来!!
{
public static void main(String[] args) {
for(int i=1;i<=7;i++){
System.out.print(f(i)+" ");
}
} public static int f(int n) {
if (n == 1 || n == 2) {
return 1;
}
else {
return f(n - 1) + f(n - 2);
}
}
}
输出结果:1 1 2 3 5 8 13
这是一道java逻辑运算题!!
我想问下这个递归是如何想到的,当我看到这道题的时候没有思路,思路是从哪点推出来的,虽然我看见代码知道如何来运行,但是始终想不出来为什么这道题会这样作出来!!
TestFib tf = new TestFib();
tf.fibs();
}
public void fibs(){
int fib1=1,fib2=1,fib3 = 0;
for(int i = 3; i <=7; i++)
{
fib3 = fib2 + fib1;
fib1 = fib2;
fib2 = fib3;
}
System.out.println("count"+fib3);
} 给你一段没有用递归的实现方法,我觉得先理解不用递归的方法再去设计递归会更容易一些}
其实递归必须得满足一定的条件的
如求n的阶乘
f(n)=n!
耳
n!=n*(n-1)!
1!=1故有
f(n)=n*f(n-1)
f(1)=1于是递归就行成了
有一个函数f(x)=f(x-1)+f(x-2),x>2(x为整数),已知f(1)=1,f(2)=1,求前八个函数值用编程实现就是上面的程序了