java 用递归方法求阶乘

一个正整数的阶乘,是所有不大于该数的正整数的积,并且0的阶乘为1,n的阶乘写作n!,由1808年基斯顿·卡曼(Christian Kramp,1760~1826)引进这个表示法。

java代码:

//用递归方法求阶乘
public class Factorial{
    public static void main(String[] args){
        int N = 5;
        for(int n = 0; n <= N; n++){
            int fact = factorial(n);
            System.out.println(n + " 的阶乘值是: " + fact);
        }               
    }
    public static int factorial(int n){
        if(n < 1)
            return 1;       
        return factorial(n-1) * n;
    }
}

输出:

0 的阶乘值是: 1
1 的阶乘值是: 1
2 的阶乘值是: 2
3 的阶乘值是: 6
4 的阶乘值是: 24
5 的阶乘值是: 120

Java 用递归计算1~N阶乘的值

Java中使用递归计算1~N阶乘的值

public class test {
 // 求阶乘的方法
 public static int factorial (int m) {
  if (m == 1) {
   // 这里要记住,return的是factorial方法,而不是结束执行if方法。
   return 1;
  }
  return m * factorial(m - 1);
 }
 
 public static void main(String[] args) {
  int n = N;
  System.out.println(factorial(n));
 }
}

Java中使用递归计算1~10阶乘的值(这里将数值代入的话更好理解)

public class test {
 // 求阶乘的方法
 public static int factorial (int m) {
  if (m == 1) {
   // 这里要记住,return的是factorial方法,而不是结束执行if方法。
   return 1;
  }
  return m * factorial(m - 1);
 }
 
 public static void main(String[] args) {
  int n = 10;
  System.out.println(factorial(n));
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员的世界。

java如何用递归方法求阶乘的更多相关文章

  1. Admin - SpringBoot + Maven 多启动环境配置实例详解

    一:父级pom.xml文件 resources目录下新建指定文件夹,存放Spring配置文件<profiles><profile><id>dev</id><properties><profiles.active>dev</......

  2. Java8 Stream

    简单认识Java stream Java8出了一个stream流式编程,在开发中或多或少用到接触过。怎么说呢!举个例子把,一起我们在遍历一个集合的时候,我们是从外部去遍历的,然后才能拿到结果,这样来效率就会变得相对低一点。而这个时候我们去内部去遍历集合的时候,直接从内部拿数据。减少资源消耗,提升效率......

  3. 【java框架】SpringBoot(5)--SpringBoot整合分布式Dubbo+Zookeeper

    1.理论概述1.1.分布式分布式系统是若干独立计算机的集合,这些计算机对于用户来讲就像单个系统。由多个系统集成成一个整体,提供多个功能,组合成一个板块,用户在使用上看起来是一个服务。(比如淘宝网)。 起源分布式系统出现的原因是:用多个廉价的、普通的机器完成单个计算机无法完成的计算、存储任务分布式......

  4. java如何用递归方法求阶乘

    java 用递归方法求阶乘一个正整数的阶乘,是所有不大于该数的正整数的积,并且0的阶乘为1,n的阶乘写作n!,由1808年基斯顿·卡曼(Christian Kramp,1760~1826)引进这个表示法。java代码://用递归方法求阶乘public class Factorial{pub......

  5. 全面解析java final关键字

    根据上下文环境,Java 的关键字 final 的含义有些微的不同,但通常它指的是“这是不能被改变的”。防止改变有两个原因:设计或效率。因为这两个原因相差很远,所以有可能误用关键字 final。以下几节讨论了可能使用 final 的三个地方:数据、方法和类。1)final 数据对于编译时常量这种情况......

  6. Java利用for循环打印菱形

    Java for循环打印菱形Java代码输出菱形的方法和思路有很多,在此分享一个稍带模块化拆分思想的解决方案,将需要输出的菱形拆分成8个模块(如下图),每个模块独立实现输出。优点:8个模块之间耦合性降低,灵活性增强。也就是说我们可以独立的控制这8个模块中任意一个模块的输出内容来灵活应对业务逻辑的变更......

  7. SpringBoot+JavaMailSender实现腾讯企业邮箱配置

    1. 引入spring-boot-starter-mail 依赖包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail&l......

  8. Java中EasyPoi导出复杂合并单元格的方法

    前言:上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。导出模板:坐标:版本号,自己来定,可以去官网查看:E......

  9. java DelayQueue的原理浅析

    在对DelayQueue延迟功能的使用上,很多人不能后完全理解延迟的一些功能使用,这里我们深入来挖掘一下DelayQueue的原理。下面将从构造方法、接口、继承体系三个方面进行分析,需要注意的是,相较于其它的阻塞队列,DelayQueue因为延迟的功能多了接口的使用,一起来看具体内容。1.构造方法p......

  10. Java中类的定义和初始化示例详解

    类的定义类的定义格式//创建类class ClassName{field ;//成员属性/字段method;//方法}class为定义类的关键字,ClassName为类的名字,{ }为类的主体;例如:class Person{public String name ; //成员属性public int......

随机推荐

  1. MySQL MGR搭建过程中常遇见的问题及解决办法

    MGR搭建过程中遇到的一些故障 实际中我一共部署了三套MGR环境,分别是单机多实例的MGR环境,多机同网段的MGR环境,多机不同网段的MGR环境,部署的过程大同小异,但是还是有一些有出入的地方,这里把部署过程遇到的故障列举出来,供大家参考,如果能有幸解决您在部署时候的问题,那是极好......

  2. vue backtop组件的实现完整代码

    效果:代码:<template><div class="back-top"><div ><img src="imgsrc" class="line" :class="isHide? 'is......

  3. python使用timeit时间模块

    1. timeit.timeit(stmt=‘pass', setup=‘pass', timer=<default timer>, number=default_number)timeit() 函数有四个参数,每个参数都是关键字参数,都有默认值。stmt:传入需要测试时间的代码,可以直......

  4. 关于Java下奇怪的Base64详解

    下面这一段代码中会报错。?123456789101112131415161718192021222324252627282930313233package jiangbo.java.lang;import java.io.IOException;import java.nio.charset.Cha......

  5. 史上最详细的Python打包成exe文件教程

    打包成exe文件可以让python代码在没有python环境的条件下,依然能够运行,实在是码农们写追女朋友表白、情人节浪漫的必需品!1、使用豆瓣镜像源下载: pyinstaller有需要了解如何使用国内镜像的小伙伴可以滴滴到此:国内镜像源详细使用教程!https://blog.csdn.net/xt......

  6. Java导出Excel通用工具类实例代码

    一、概述相信大家在工作过程中,都会遇到这样一个需求,就是将相关的数据列表导出成excel,那么,有没有通用的导出方式呢,这里,就带着大家一起来用Java实现一个通用的导出Excel的工具。二、项目实现1、构建pom.xml我们的工程是利用Maven来构建的,项目具体搭建过程大家可以参见网上其他资料,......

  7. Java 在Word中添加多行图片水印

    Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页面。(添加多行文字水印效果,可以查看这篇文章中的方法)思路及方法:获取Word页眉,添加图片到页眉段......

  8. C# AE之返回上一级和下一级的实战操作

    我就废话不多说了,大家还是直接看代码吧~try{//判断是否可以返回上一视图if (mapControl.ActiveView.ExtentStack.CanUndo()){//执行操作mapControl.ActiveView.ExtentStack.Undo();//刷新mapControl.R......

  9. R语言绘制散点图实例分析

    散点图显示在笛卡尔平面中绘制的许多点。 每个点表示两个变量的值。 在水平轴上选择一个变量,在垂直轴上选择另一个变量。使用plot()函数创建简单散点图。语法在R语言中创建散点图的基本语法是 -plot(x, y, main, xlab, ylab, xlim, ylim, axes)以下是所使用的参......

  10. ASP.Net Core 5.0 MVC AppSettings配置文件读取,Startup 类中ConfigureServices 方法、Configure 方法的使用

    配置文件读取1. 新建FirstController控制器在appsettings文件内容替换成以下代码{ "Position": { "Title": "EditTool For human", "Name": &qu......