递归的例子有太多种吧!
、台阶问题。
楼梯有N阶,上楼可以一步上一价,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。
(递归方法)
import javax.swing.JOptionPane;
public class Taijie_1 {
public static void main(String[] args) {
int n=Integer.parseInt(JOptionPane.showInputDialog("请输入台阶数n: "));
System.out.println(T(n));
}
public static int T(int n){
if(n<1){
System.out.println("无效参数");
return -1;
}
else if(n==1)
return 1;
else if(n==2)
return 2;
else
return T(n-1)+T(n-2);
}
}
(循环方法)
import javax.swing.JOptionPane;
public class Taijie_2 {
public static void main(String[] args) {
int n=Integer.parseInt(JOptionPane.showInputDialog("请输入台阶数n: "));
System.out.println(T(n));
}
public static int T(int n){
if(n<1){
System.out.print("无效参数");
return -1;
}
if(n==1) return 1;
if(n==2) return 2;
int T1=1,T2=2,T=0;
for(int i=3;i<=n;i++){
T=T1+T2;
T1=T2;
T2=T;
}
return T ;
}
} |