程序笔记   发布时间:2022-07-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了递归基础小练习大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
package 递归基础小题;

/**
 * @author 邓雪松 (づ ̄ 3 ̄)づ)
 * @create 2021-10-24-16-25
 */
public class Demo1 {
    public static void main(String[] args) {
        //求阶乘问题-递归
        int x1 = f1(5);
        System.out.println("5的阶乘为:"+x1);
        //打印1-6
        f2(1,6);
        //数组求和
        int x2 = f3(new int[]{1,2,3,4,5},0);
        System.out.println("n数组之和为:"+x2);
        //反转字符串
        System.out.println(reverse("abcd",3));

    }
    /**
     * f1(n):求n的阶乘-->f1(n-1)求n-1的阶乘
     * 找重复:n*(n-1)的阶乘,求n-1的阶乘是原问题的重复(规模更小) —— 子问题
     * 找变化:变化的量(n)应该作为参数——※
     * 找边界:出口——return 1——※
     */
    static int f1(int n){
        if(n==1)
            return 1;
        return n * f1(n-1);
    }
    /**
     * 打印i-j(i到j)
     * 找重复:打印
     * 找变化:变化的量应该作为参数-i
     * 找边界:出口
     */
    static void f2(int i,int j){
        if(i>j)
            return;
        System.out.print(i+"t");
        f2(i+1,j);
    }
    /**
     * 对arr的所有元素求和
     * 找重复:
     * 找变化:变化的量应该作为参数
     * 找边界:出口
     */
    static int f3(int[] arr,int begin){
        if(begin==arr.length-1){
            return arr[begin];
        }
        return arr[begin]+f3(arr,begin+1);
    }
    /**
     * 翻转字符串
     */
    static String reverse(String src,int end){
        if(end==0){
            return ""+src.charAt(0);
        }
        return src.charAt(end)+reverse(src,end-1);
    }
}

运行结果

5的阶乘为:120
1	2	3	4	5	6	
数组之和为:15

大佬总结

以上是大佬教程为你收集整理的递归基础小练习全部内容,希望文章能够帮你解决递归基础小练习所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: