• 数字阶层和...递归算法


    题目:求1+2!+3!+…+20!和
    分析:双重for循环很简单。
    重点分析下递归方法:当我们去求20!时可以理解为20*19!,在理解为20*19*18!….最后变为20*19*18*…*1!;1的阶乘和为1。从这里可以看出递归的现象,定义递归开始和终止条件即完成了


    package com.math.forth;
    
    /***
     * 求1+2!+3!+...+20!和 
     * 分析:双重for循环很简单。
     * 重点分析下递归方法:当我们去求20!时可以理解为20*19!,在理解为20*19*18!....最后变为20*19*18*...*1!;1的阶乘和为1。
     * 从这里可以看出递归的现象,定义递归开始和终止条件便结束。
     * 
     * @author wql
     *
     */
    public class Math13 {
    
        public static void main(String[] args) {
            int sum = method();
            System.out.println(sum);
    
            // ----------------递归方法--------------------
            int sum2 = 0;
            //递归得到只是单个数字的阶乘和,题目要得到1到20所有数字阶乘和的和
            for (int i = 1; i <= 20; i++) {
                sum2 += method2(i);
            }
            System.out.println(sum2);
        }
    
        /**
         * 递归方法:只是求一个数的阶乘和
         * 
         * @return
         */
        private static int method2(int num) {
            if (num == 1) {
                return 1; // 递归结束
            } else {
                return method2(num - 1) * num;// 递归开始
            }
        }
    
        /**
         * for循环方法
         * 
         * @return
         */
        public static int method() {
            int sum = 0;
            for (int i = 1; i <= 20; i++) {
                int temp = 1;
                for (int j = i; j >= 1; j--) {
                    temp *= j;
                }
                sum += temp;
            }
            return sum;
        }
    
    }
    

    这里写图片描述

  • 相关阅读:
    JSP内置对象
    java 中list还有array的区别
    js动态修改界面碰见的疑惑
    购物多条件商品查询逻辑处理
    数据库信息备份
    关于毕设的一些小问题
    在<a></a>标签中正确调用javaScript脚本
    oracle实训0705经验
    第十五天学习进度--数列找规律算法(预测算法)(1)
    第十四天学习进度--相关系数和显著水平
  • 原文地址:https://www.cnblogs.com/wangqilong/p/9417532.html
Copyright © 2020-2023  润新知