一个数的阶乘

当这个数 = 1的时候,算式为:1 * (1 - 0) = 1,所以1的阶乘就是1

当这个数 = 2的时候,算式为:2! = 2 * 1 = 2 * (2 - 1) = 2,所以2的阶乘就是

前2个数为特殊情况

假设这个数为n

n = 1 , n! = 1 * (1 - 0)

n = 2,n! = 2 * (2 - 1)

n = 3,n! = 3 * (3 - 1) * (3 - 2)

....等等等....

由此引发出递归的思想

public class Test {

pulic static void main(String[] args) {

System.out.println(5); // 120

}

public static int F(int n) {

// 首先来处理2个特殊情况

if (n == 1) {

// 如果 n 和 1 相等,直接返回结果为1

return 1;

}

if (n == 2) {

// 如果n 和 2 相等,直接返回结果为2

return 2;

}

if (n > 2) {

return n * F(n - 1);

}

}

}

上述还可以简化为

public class Test {

pulic static void main(String[] args) {

System.out.println(5); // 120

}

public static int F(int n) {

// 首先来处理2个特殊情况

if (n == 1) {

// 如果 n 和 1 相等,直接返回结果为1

return 1;

}

if (n >= 2) {

return n * F(n - 1);

}

}

}

5代入的执行流程

n = 5,第一个判断不执行,n现在是>=2的,就执行return n * F(n - 1);,这就相当于小时候的数学的方程式代入感一样,5代入,5 * F(4) , 这里的F(4)又是调用了一遍这个函数,F(4) = 4 * F(3),依次下去,就会最终变成5 * 4 * 3 * 2 * 1;

原文:https://www.cnblogs.com/wxvirus/p/12913904.html

html编写阶乘,阶乘的实现相关推荐

  1. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  2. C语言编写程序阶乘的和

    编写程序求1+2!+3!+4!+-+n!的值 //编写程序求1+2!+3!+4!+...+n!的值 //方法1 #include <stdio.h> #include <stdlib ...

  3. matlab级数求和阶乘,(阶乘)数列求和 - 数学 - 小木虫 - 学术 科研 互动社区

    翻看了一下坛子里的相关内容,觉得应该是发在这里最合适了.要是这里不合适,请大家告知我一下. 我在对一化学过程数学建模时,得到一数学关系,是一数列,其中各项表达如下: [latex]{x_1} = \f ...

  4. 【小f的刷题笔记】(JS)阶乘 - 阶乘后的零 LeetCode172 阶乘函数后K个零 LeetCode793

    [阶乘] 一.阶乘后的零: LeetCode172 链接: 172.阶乘后的零 题目: 思路: 0的产生是一定是因为2*5产生的,所以就是找因数 并且,可想而知,找的到因数5,必然找的到因数2与之搭配 ...

  5. 题目1179:阶乘-------------阶乘不用long long int 就不能AC

    AC的代码: #include<iostream> using namespace std; long long int fact(int m); int main() {int n;wh ...

  6. java数字计算结果_Java编写程序之输入一个数字实现该数字阶乘的计算

    需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4*5,表示为5! = 120 ...

  7. c语言计算阶乘的倒数和,for循环计算某个数的阶乘、阶乘和及其倒数的阶乘和...

    //4的阶乘 int jc = 4; //定义一个变量用来代表要计算的数值 long jd =1; //定义最终输出的阶乘 for(int i = 1; i <= jc;i++) //定义循环加 ...

  8. 阶乘与斐波那契数的理解

    在算法导论第三章中,提到了阶乘和斐波那契数,颠覆或者说是加深了我以前对这两种数的理解.以前是无法想象这个数有多大,但现在是有了一个概念. 阶乘 阶乘的定义为 n!= n>0?1:n*(n-1)! ...

  9. Java实现递归 斐波那契数列 阶乘

    Java实现递归 斐波那契数列 阶乘 阶乘 /*** 使用递归算法求阶乘* 求阶乘 * 5!=5*4*3*2*1; * * 1=1;* 2!=2*1!;* 3! = 3*2!;* 4! = 4*3!; ...

最新文章

  1. ubuntu安装mysql 密码忘了怎么办_在ubuntu上面安装mysql都密码忘记及一些常用命令...
  2. qii, sopc, nios ii 10.1 IP核设计,LED验证死活不行,感觉很神奇
  3. 电脑切换用户关闭计算机会怎样,电脑中的“睡眠、关机、注销、切换用户、待机、休眠”都什么意思?有什么区别...
  4. java提高篇(十二)-----代码块
  5. XMPP协议简单介绍
  6. Oracle中case when用法
  7. python按键盘上哪个键运行_python根据键盘输入进行相应操作
  8. restful get不传参数404_你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!
  9. Qt工作笔记-QStylePlugin插件实现变化窗体背景
  10. android app应用签名生成工具,android应用签名详细步骤
  11. 中国风古典传统中式花纹边框图案PSD素材
  12. 基于ffmpeg+SDL的加密视频播放器的开发(一)
  13. Unity3D放破解反编译。DLL加密,mono解密。全程详解。
  14. IEEEtran模板的参考文献管理问题a missing \item. \begin{thebibliography}{}
  15. PyQt5网易云主页UI实现
  16. RK3568的红外遥控
  17. Image captioning评价方法之ROUGE-L
  18. 负载均衡负载场景和解决方案
  19. 如何免费下载道客巴巴文档
  20. 海信电视power android,海信智能电视投屏之安卓手机miracast投屏教程

热门文章

  1. 活用Koomail的IMAP协议功能同步Gmail邮件
  2. linux查找以c开头的的文件夹,文件查找命令find详解
  3. 罗技k380连接双系统(win10和ubuntu18)
  4. elasticsearch安装和使用
  5. 分享:DFC开发平台的设计理念
  6. java与单片机通信_Java实现串口通信与单片机通信实例..【Pnoter】
  7. 深夜一个考研女生:“我焦虑症犯了”
  8. QT 绘图工具-QCustomPlot
  9. SAP中供应商寄售库存返回操作实例
  10. elasticsearch7.x clusterAPI之settings