zoukankan      html  css  js  c++  java
  • 蓝桥杯于航1(递归问题)

    1.用递归计算累加和。

    在一般的情况下,可以用循环做的题目都可以用递归解决。

    在不能解决的情况之下,往往是参数不足导致的,可以增加参数再去解。

     1 public class Main {
     2     public static int f(int[] a,int begin){
     3         if(begin==a.length)
     4             return 0;
     5         int x=f(a,begin+1);
     6                return x+a[begin];
     7     }
     8     public static void main(String[] args) {
     9         int[] a={2,5,3,9,12,7};
    10         int sum=f(a,0);
    11         System.out.println(sum);
    12         
    13     }
    14 }

    2.判断两个字符串是否相等

     1 public class Main {
     2     public static boolean isSameString(String s1,String s2){
     3             if(s1.length()!=s2.length())    return false;
     4             if(s1.length()==0)    return true;
     5             if(s1.charAt(0)!=s2.charAt(0))    return false;
     6             return isSameString(s1.substring(1),s2.substring(1));
     7     }
     8     public static void main(String[] args) {
     9         System.out.println(isSameString("aBCDE","aBCDE"));
    10     }
    11 }

    注:

    a="cavaba";

    a.substring(1); 指的是从下标1开始截取字串。

    当a="a",a.substring(1)=""。

    递归的原理解释:

    public class Main {
        public static void f(int n){
            if(n>0) f(n-1);
            System.out.println(n);
        }
        public static void main(String[] args) {
            f(5);
        }
    }

    以上函数是打印0,1,2,3,4,5.

    递归是一个栈结构,只有上面的执行完,才按照栈结构中的顺序执行后面的。以此类推。

  • 相关阅读:
    linux运维学习
    2017年阿里巴巴三面经验
    Spring Boot:在Spring Boot中使用Mysql和JPA
    meshroom和alicevision在Ubuntu16上的安装过程
    ubuntu rm -rf ntfs 硬盘恢复
    python 脚本内部修改 LD_LIBRARY_PATH
    python uml 图
    tlmgr 相关
    ubuntu 安装 clangd 10.0.0
    zsh 快捷键
  • 原文地址:https://www.cnblogs.com/laoyangtou/p/10542046.html
Copyright © 2011-2022 走看看