zoukankan      html  css  js  c++  java
  • Java之递归

      递归是程序设计中常用的一种算法,简单来说就是自己调用自己

      在递归中需要注意两点:

        1.递归是在函数中调用自己 

        2.在递归中,必须要有一个明确的条件作为结束,否则会形成死循环,一个劲的调用下去

      从网上找几个例子转过来

    ============================================================

      一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现

      分析:第一位是1,第二位是1,第三位是第1位和第2位之和,后面每位都是前面两位之和

    class  Revert
    {
        public static void main(String[] args) 
        {
            int i = fn(8);
            System.out.println(i);
        }
    
    
    
        public static int fn(int n){
            if(n == 1){
                return 1;   //第一位返回1
            }else if(n == 2){
                return 1;    //第二位也返回1
            }else{
                return fn(n-1) + fn(n-2);        //从第三位开始,每位返回前两位之和
            }
        }
    }

    =======================================================================

      递归实现回文判断  回文: String s1 = "abcddcba"       String s2 = "abcba"

      

    class loopWord 
    {
        public static void main(String[] args) 
        {
            boolean a = loopWord("abcdcba",0);
            System.out.println(a);
        }
    
        static boolean loopWord(String str, int i) {
    
            if (str.charAt(i) == str.charAt(str.length() - 1 - i)) {    //判断是否相同
                if (i == (str.length() + 1) / 2){    //判断是否到了最中间
                    return true;    //如果都相同,返回true
                }
                System.out.println("这个时候i=" + i + "   字符串的第" + i +"位为:" + str.charAt(i));    //为方便观察,输出语句
                return loopWord(str, i + 1);    //如果第一位和最后以为相同,则返回从第二位和倒数第二位
            } else {
                return false;
            }
        }
    }

    以上代码的输出结果为

    这个时候i=0   字符串的第0位为:a
    这个时候i=1   字符串的第1位为:b
    这个时候i=2   字符串的第2位为:c
    这个时候i=3   字符串的第3位为:d
    true

    其实这里最重要的参数是判断位置,如果第一位和最后以为相同,则判断第二位和倒数第二位,当判断到中间时,所有字符都相同的时候,则为回文

    ==============================================================

      

  • 相关阅读:
    probuf了解
    rebbitmq-RPC(C#)
    获取指定数量的有序列表
    RPC(Remote Procedure Call Protocol)
    正则表达式(c#)
    02_python函数
    01_python基础
    养生茶
    测试左右移浅淡
    python类的组合
  • 原文地址:https://www.cnblogs.com/xs104/p/3283960.html
Copyright © 2011-2022 走看看