博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字阶层和...递归算法
阅读量:5102 次
发布时间:2019-06-13

本文共 1281 字,大约阅读时间需要 4 分钟。

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

这里写图片描述

转载于:https://www.cnblogs.com/wangqilong/p/8279767.html

你可能感兴趣的文章
SQL SUM() 函数
查看>>
Python3 数字(Number)
查看>>
微信小程序 - 传参的几种方式
查看>>
大数据之多数据源综合管理系统:数据源配置管理
查看>>
Iroha and Haiku II
查看>>
jvm
查看>>
HTTP 笔记与总结(6)referer 头与防盗链
查看>>
poj 3278 Catch That Cow (bfs 搜索)
查看>>
怎么解决java.lang.NoClassDefFoundError错误
查看>>
Hive分区表创建,增加及删除
查看>>
RSA加密算法理解(整理自网络)
查看>>
【tool】c/s和b/s的区别及实例说明
查看>>
Linux系统常用工具集
查看>>
Understanding Maximum-a-Posteriori (MAP) Estimation
查看>>
菜市场
查看>>
5.20 考试 20 未完
查看>>
setup in xunit
查看>>
FAQ Flyway
查看>>
NOIP2016换教室 BZOJ 4720
查看>>
JQuery Smart UI 简介 (一) — 纯Htm+Js的ajax开发框架[演示Demo已放出]
查看>>