A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2012-7-13 12:22  /  2268 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

递归的例子有太多种吧!
、台阶问题。
楼梯有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   ;
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马