首页 > 其他分享 >揭秘!10以内数阶乘的神秘力量,你绝对想不到的结果!

揭秘!10以内数阶乘的神秘力量,你绝对想不到的结果!

时间:2024-11-07 16:20:05浏览次数:3  
标签:10 factorial public 阶乘 main 方法 揭秘

在Java中,计算10以内数的阶乘可以通过循环和递归两种方式实现。下面将分别展示这两种方法的代码及其详解。

方法一:使用循环

public class FactorialUsingLoop {
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            System.out.println(i + "! = " + factorial(i));
        }
    }

    public static long factorial(int n) {
        long result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }
}
详解:
  1. main 方法中使用一个for循环从0到10遍历。
  2. 对于每个数字i,调用factorial方法计算其阶乘。
  3. factorial方法初始化一个结果变量result为1,然后通过一个for循环从1到n乘以每一个整数,最终返回计算得到的阶乘值。

方法二:使用递归

public class FactorialUsingRecursion {
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            System.out.println(i + "! = " + factorial(i));
        }
    }

    public static long factorial(int n) {
        if (n == 0) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
}
详解:
  1. main 方法同样使用一个for循环从0到10遍历。
  2. 对于每个数字i,调用factorial方法计算其阶乘。
  3. factorial方法是一个递归函数:
    • 如果n等于0,按照阶乘的定义,返回1。
    • 否则,返回n乘以n-1的阶乘(即factorial(n - 1))。

注意事项:

  • 当使用循环时,需要注意数据类型选择,因为阶乘的结果很快会非常大,可能会超出intlong的范围。在这个例子中,我们使用了long类型来存储结果。
  • 递归方法虽然简洁,但要注意递归深度,尤其是在处理大数时可能会导致栈溢出错误。
  • 对于非常大的数,可以考虑使用BigInteger类来处理大数的阶乘运算。

标签:10,factorial,public,阶乘,main,方法,揭秘
From: https://blog.csdn.net/LA1245780/article/details/143599104

相关文章

  • 【Java开发者必看】揭秘Java访问磁盘文件机制,让你的代码效率翻倍!
    在Java中,访问磁盘文件通常使用java.io包中的类。这些类提供了多种方式来读取和写入文件。以下是一些常用的类及其用法:1. FileReader和FileWriter解释:FileReader用于读取字符文件。FileWriter用于写入字符文件。示例代码:importjava.io.FileReader;importjava.io.File......
  • 揭秘Java中的随机数生成:让你的程序更加不可预测!
    在Java中,生成随机数可以使用java.util.Random类或Math.random()方法。以下是详细的代码示例和解释:使用 java.util.Random 类1.生成一个随机整数importjava.util.Random;publicclassRandomIntegerExample{publicstaticvoidmain(String[]args){Ra......
  • SS241106C. 此时此刻的光辉
    SS241106C.此时此刻的光辉题意给你\(n\)个点,每个点需要被染成\(0/1/2\)三种颜色之一,有\(m\)种限制,每个限制形如【\(u\)不是颜色\(x\)or\(v\)不是颜色\(y\)】,问你满足限制的涂色方案数。思路拜谢dxw。题解提到了FWT是什么东西,好吓人啊。这里是题解的做法一......
  • 揭秘MySQL事务的四大特性与隔离级别:从理论到实战,让你的数据操作无懈可击!
    MySQL事务的四大特性与隔离级别是数据库管理中非常重要的概念,它们确保了数据在并发操作下的一致性、完整性和可靠性。下面将详细介绍这四大特性及其隔离级别,并附上代码示例和详细解释。一、MySQL事务的四大特性原子性(Atomicity):定义:事务的所有操作要么全部完成,要么全部不完......
  • 揭秘:Java加盐加密算法,保护你的数据安全!
    加盐加密算法是一种在密码处理中广泛使用的技术,通过为密码添加一个随机值(称为“盐”)来增加密码的复杂性和安全性。下面将详细介绍加盐加密算法的概念、实现步骤以及代码示例:加盐加密算法概念加盐加密算法:通过引入随机生成的盐值与用户密码组合后进行哈希运算,以增强密码的安......
  • 结合创新,小波变换+注意力机制竟能实现100%分类准确率
    2024深度学习发论文&模型涨点之——小波变换+注意力机制小波变换是一种先进的信号分析技术,它擅长捕捉信号的局部特征,但有时可能会忽略数据中的关键信息。为了克服这一局限,我们引入了注意力机制,这一机制能够强化模型对数据重要部分的关注。通过将小波变换与注意力机制相结合,我......
  • 【揭秘】Spring Boot配置文件与日志文件的神秘面纱!开发者必看!
    SpringBoot的配置文件与日志文件是应用程序配置和运行日志管理的关键组成部分。下面将详细介绍这两种文件:SpringBoot配置文件基本概述:SpringBoot支持多种配置文件格式,包括.properties、.yml和.yaml。.properties是传统的键值对形式,简单易懂,但当配置结构复杂时容易......
  • 【揭秘】Spring AOP:面向切面编程的神秘面纱!你也能成为编程高手
    SpringAOP(Aspect-OrientedProgramming,面向切面编程)是Spring框架中的一个重要特性,它允许开发者将横切关注点(如日志记录、事务管理、性能监控等)从业务逻辑代码中分离出来,通过定义切面(Aspect)来模块化这些横切关注点。1.SpringAOP基础1.1引入依赖首先,需要在项目中引入Sprin......
  • SS241107B. 子序列们(sub)
    SS241107B.子序列们(sub)题意给你一个仅含有\(0,1\)的序列\(A\),定义序列\(B\)为每个元素是序列\(A\)的一个子序列的序列,满足第\(i\)个元素的长度是\(n-i+1\),且\(\forallj>i\),第\(j\)个元素是第\(i\)个元素的子序列。问有多少种本质不同的序列\(B\),对\(99824......
  • 教你使用win10实现电脑的定时任务执行
    制作定时任务:步骤一、按下win+s输入“任务计划程序”如下图: 提示:最好以管理员身份运行,避免任务无权限失败的情况。 步骤二、进入到任务计划程序界面 可以看到很多以往程序设置的任务计划信息。步骤三、新建一个任务文件夹,用来放入我们的自定义任务信息 这里我们取......