温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

递归调精析及例子

发布时间:2020-08-05 15:29:52 阅读:187 作者:botaorain 栏目:编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
//递归分析和使用、 /*  * 1.找到相似性  * 2.设计出口  *   */ import java.util.List; import java.util.Vector;  public class test17 {      /**      * @param args      */          public static void main(String[] args) {         // TODO Auto-generated method stub //      p(0, 10); //      p1(0, 10); //      System.out.println(sum(1, 100)); //      System.out.println(sum1(1, 100)); //      System.out.println(turn("abcdefg"));                           List<String> list=pl("abcd");         for (int i = 0; i < list.size(); i++) {             System.out.println(list.get(i));         }                       }     //1.简单的打印10个数字问题     public static void p(int begin,int end) {         System.out.println(begin);         if (begin<end) {         //出口             p(begin+1, end);         }     }          public static void p1(int begin,int end) {         if (begin<end) {        ////出口             p1(begin, end-1);         }         System.out.println(end);     }               //2.简单的书累加问题          public static int sum(int begin,int end ) {         if (begin==end) {                 //出口             return begin;         }         return(begin+sum(begin+1, end));  //累加后赋给begin     }          public static int  sum1(int begin,int end) {         if (begin==end) {                //出口             return end;         }         return (end+sum1(begin, end-1));  //累加后赋给begin     }          //3.字符串翻转问题     public static String  turn(String s) {         //abcdefg         if (s.length()<=1) {             return s;         }         return (turn(s.substring(1))+s.charAt(0));     }               ///4.全排列问题     public static List<String> pl(String s) {         List<String> lst=new Vector<String>();   //初始化一个空链表 //      abc    解题思路: 1。先取出要排列串的第一个字符, //      bac    2.剩下的字串再进行全排列 //      bca     3.将取出的字符插入到全排列后的字串中。 //      acb //      cab //      cba         if (s.length()==1) {          //如果要全排列的字符串只有一个字符,直接加入到已初始化的链表中,返回list             lst.add(s);             return lst;         }         //如果要排列的字符串长度大于1,取出该串的第一个字符,将字串再进行递归处理         char  a=s.charAt(0);         String s1=s.substring(1);         List<String> t=pl(s1);   //递归进行字串的全排列                  for (int i = 0; i < t.size(); i++) {             String string=(String)t.get(i);                               for (int j = 0; j <string.length()+1; j++) {                                  lst.add(string.substring(0,j)+a+string.substring(j));             }         }         return lst;     }                } 

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×