用递归方法,求10!的阶乘

分析:

  1. f(n) = n * f(n-1)           n != 1        -----        递推公式
  2. f(n) = 1                       n = 1      -----         结束条件

代码:

public class TestDiGui {
public static void main(String[] args) {
System.out.printf("%d! = %s", 10, fac(10));
} static long fac(int n) {
if(n == 1) {
return 1;
}else {
return n * fac(n-1);
}
}
}

代码分析:

当n = 10时,调用f(10),f(10)调用f(9),f(9)调用f(8),....,f(2)调用f(1),f(1)返回1,f(2)返回2 * 1,...,f(8)返回8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(9)返回9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(10)返回10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,结果被printf打印输出

如图:

输出结果:

Java - n的阶乘计算的更多相关文章

  1. Java实现 蓝桥杯 算法训练 多阶乘计算

    试题 算法训练 多阶乘计算 问题描述 我们知道,阶乘n!表示n*(n-1)(n-2)-21, 类似的,可以定义多阶乘计算,例如:5!!=531,依次可以有n!..!(k个'!',可以简单表示为n(k) ...

  2. C语言 · 阶乘计算 · 基础练习

    问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表 ...

  3. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  4. 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行

    [TOC] 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行 程序源码 import java.io.IOException; import java.util. ...

  5. java代码求阶乘n!

    面试过程中总是遇到要求写一段Java代码求阶乘.下面就是就是两种求阶乘 n! 的方法: 1.使用递归求解n! public int doFactorial(int n){ if(n<0){ re ...

  6. 蓝桥杯 基础练习 BASIC-30 阶乘计算

    基础练习 阶乘计算   时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*…*n. 算法描述 n!可能很大,而计算机能表示的整数范围有 ...

  7. Java递归实现阶乘

    import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner ...

  8. 蓝桥杯vip题阶乘计算

    蓝桥杯vip题阶乘计算 详细题目 输入一个正整数n,输出n!的值. 其中n!=123*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个 ...

  9. 蓝桥杯(Java方法、详细解法分析)基础练习 阶乘计算

    问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 6 5 样例输出 00720 数据规模和约 ...

随机推荐

  1. 解决gitosis中authorized_keys不自动更新问题

    1.拷贝一个管理员权限用户的id_rsa.pub到服务器端 这里我拷贝的是yang电脑的key,命令如下: scp  /home/yang/.ssh/id_rsa.pub serveradmin@服务 ...

  2. ArcGIS 桌面远程连接带有端口号的SDE

    首先配置远程连接 PostgreSQL数据库远程连接功能的开启   需要修改连个配置文件,默认位于 安装目录的data子文件夹下.   1.postgresql.conf 修改成监听所有ip地址的连接 ...

  3. 探索式软件测试—Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

  4. 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用

    十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...

  5. ExtractStrings字符串截取

    //分割字符串 ExtractStrings var   s: String;   List: TStringList; begin   s := 'about: #delphi; #pascal, ...

  6. onbeforeunload事件

    window.onbeforeunload=function(){ return "您正在编辑的博客尚未保存,确定要离开此页吗?"; }; 1.这个事件存在的意义就是防止用户不小心 ...

  7. C语言C++编程学习:排序原理分析

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  8. cannot be resolved to a type (Java)

    最近经常遇到cannot be resolved to a type (Java)报错,以下为在网上找到的解决方案: 1.先看看有没有引用相关jar包2.检查jar是否引用了多个相同的,或者多个jar ...

  9. OCP考试最新052题库分析整理-28

    28.Which two are true about external tables? A. They support the ORACLE_DATAPUMP access driver. B. T ...

  10. “全栈2019”Java第四十六章:继承与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...