由于阶乘的增长速度非常快,想用寻常的数据类型储存是不大可能的。

所以想要计算阶乘就需要用到数组来进行高精度的计算。

用数组a来表示一个整数A,a[0] 表示A的个位,a[1] 表示A的十位。(这里采用的是逆序存储的方法,因为逆序存储在进行进位操作的时候比较方便)

话不多说,上代码。

public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();// 申请一个大数组int[] a = new int[1000];// 给数组的个位赋一个初值(因为需要对他进行乘的运算,所以必须附一个初值) a[0] = 1;for (int i = 1; i <= n; i++) {// 将数组中的每一位的数都乘这个乘数ifor (int j = 0; j < a.length; j++) {a[j] *= i;}// 进位操作for (int k = 0; k < a.length - 1; k++) {a[k+1] += a[k] / 10; // 进位a[k] %= 10;  // 取余 计算出进位后该位上剩下的数}}// 定义一个下标,用来找到第一位数int index = 0;for (int i = a.length - 1; i > 0; i--) {if(a[i] != 0) {index = i;break;}}// 最后逆向输出for (int i = index; i >= 0; i--) {System.out.print(a[i]);}}

例:
逆向存储 1632 其他位默认为0

个位 十位 百位 千位
2 3 6 1 0 0 0 0

输出时只需要找到最右边的非零数的下标,然后进行逆向输出即可。

作者目前是一名学生,如有考虑不周,或者有更好的方法请各路大神谅解批评指正,共同学习。

蓝桥杯 Java 阶乘计算相关推荐

  1. java蓝桥杯练习 平方计算

    java蓝桥杯练习 平方计算 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 输入正整数a, m,输出a2%m,其中表示乘方,即a^2表示a的平方,%表示取余. 输入格式 输入包含两 ...

  2. 2018年 第9届 蓝桥杯 Java B组 省赛真题详解及总结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  3. 2022第13届蓝桥杯Java省赛B组个人题解

    文章目录 A. 星期计算 B. 山 C. 字符统计 D. 最少刷题数 E. 求阶乘 F. 最大子矩阵 G. 数组切分 H. 回忆迷宫 I. 红绿灯 J. 拉箱子 个人总结 A. 星期计算 思路解析: ...

  4. 2020年 第11届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  5. 2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  6. 2016年 第07届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  7. 2018年 第09届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  8. 2019年 第10届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  9. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

最新文章

  1. 精彩碰撞!神经网络和传统滤波竟有这火花?
  2. SAP转储单全面总结
  3. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
  4. ObservableCollection 类
  5. 内部同步 外部同步 java_如何用匿名内部类实现 Java 同步回调
  6. 解析 | K8S之网络插件exec
  7. C#入门详解(14)
  8. centos 升级内核方法
  9. Remote branch Develop not found in upstream origin
  10. python︱imagehash中的四种图像哈希方式(phash/ahash/dhash/小波hash)
  11. Linux系统编程三:使用man查看帮助文档
  12. Alex 的 Hadoop 菜鸟教程: 第22课 分布式日志收集组件:flume
  13. Docker配置阿里云加速器
  14. 【CSS】关键字 -webkit-fill-available 详解
  15. 张馨予一幅画拍出几十万,然而范冰冰却一直在向粉丝要画!
  16. python程序设计基础之注释
  17. 如何逼自己玩命学习,这几款超奶思的学习APP,让你爱上学习!
  18. context.Context
  19. 数据备份及恢复需求分析
  20. 欧特克Autodesk发布基础设施2012系列产品

热门文章

  1. 抖音矩阵系统源码,抖音矩阵系统定制开发look
  2. 【Java Swing/散列表】散列表实现电话号码查找系统——问题汇总分享
  3. python读取html_教你如何用 python3 提取任意 Html 主内容!
  4. UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
  5. SQLServer字符串拆分并获取某分隔符的字符串
  6. Hadoop--使用JavaAPI对文件解压、压缩
  7. 题目:信用卡还款是银行系统的重要业务,业务流程说明如下:用户有信用卡和储蓄卡,储蓄卡有查询余额和取款功能,信用卡能够查看账单金额、查看还款日和查看余额三个功能;
  8. Photoshop 2022(PS 2022) 激活版 win/mac
  9. layer.open参数;layer.open关闭事件;layer.open关闭刷新;layer.open获取子页的值;layer.open调用子页面的方法
  10. 2019南京征信报告办理