zoukankan      html  css  js  c++  java
  • 数字阶层和...递归算法

    题目:求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;
        }
    
    }
    

    这里写图片描述

  • 相关阅读:
    C# 延时不卡界面
    C++ 转C#
    CYQ数据库配置
    VB Modbus RTU CRC 校验
    开始写博客了
    简单工厂模式
    单例模式
    基础、hibernate目前应用的对比
    QT Creator 代码自动补全---快捷键设定
    C# CMD直接运行语句
  • 原文地址:https://www.cnblogs.com/wangqilong/p/9417532.html
Copyright © 2011-2022 走看看