计算1000的阶乘

1.使用Java自带类BigInteger

import java.math.BigInteger;public class no50_duplicate {public static void main(String[] args) {int N = 1000;BigInteger res = new BigInteger("1");for (int i = 1; i <= N; i++) {res = res.multiply(BigInteger.valueOf(i));}System.out.println(res);}
}

2.自己设计完成

转换成字符串,然后将字符串转换为整型数组,逐位计算,结果转换为字符串再返回。

import java.util.ArrayList;public class no50_duplicate {public static void main(String[] args) {int N = 1000;String res = "1";for (int i = 1; i <= N; i++) {res = factorial(i, res);}System.out.println(res);}public static String factorial(int n, String str) {int[] arr = str2int(str);ArrayList<Integer> list = new ArrayList<>();int carry = 0;for (int i = 0; i < arr.length; i++) {int temp = n * arr[i] + carry;list.add(temp % 10);carry = temp / 10;}if (carry != 0) {list.add(carry);}StringBuilder sb = new StringBuilder();for (int i = list.size() - 1; i >= 0; i--) {sb.append(list.get(i));}return sb.toString().trim();}private static int[] str2int(String str) {char[] chars = str.toCharArray();int[] arr = new int[chars.length];for (int i = 0; i < chars.length; i++) {arr[i] = chars[chars.length - i - 1] - '0';}return arr;}
}

计算结果:

402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Java计算1000的阶乘相关推荐

  1. java 求1000的阶乘_求1000阶乘的结果末尾有多少个0

    素数是个科学计算中很重要的一个概念,素数也叫质数.素数就是最纯净的数,没有任何其它成分的数,其它的数都可以说是由素数相乘出来的. 所以,理解好素数,对于数学和程序来说,有重要的意义. 题目是:求100 ...

  2. 编程示例:计算1000的阶乘

    阶乘应用于组合数的计算.大整数的阶乘的计算,依赖于大整数的任意精度的高效率的乘法.大整数乘法依赖于离散性的傅立叶变换.它的算法复杂度是NlogN. 按照定义计算的乘法,算法复杂度是N*N. 阶乘部分的 ...

  3. java计算n的阶乘的程序_Java编程计算n的阶乘

    n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元 ...

  4. matlab计算阶乘,紧急求助:怎么用matlab计算1000的阶乘啊?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我又试了一下,第一行错了, 应该是:x=sym(1) 祝好运. 结果是: 4023872600770937735437024339230039857193 ...

  5. matlab里面阶乘怎么计算器,紧急求助:怎么用matlab计算1000的阶乘啊?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我又试了一下,第一行错了, 应该是:x=sym(1) 祝好运. 结果是: 4023872600770937735437024339230039857193 ...

  6. python计算n阶乘中尾部零的个数_(Java)设计一个算法,计算出n阶乘中尾部零的个数...

    展开全部 long 类型对大数阶乘来e68a8462616964757a686964616f31333365633963说存储范围大小,强行使用会溢出,可以使用 BigDecimal. 代码如下:im ...

  7. Java计算1到100阶乘和

    Java计算1到100阶乘和 1.定义一个 factorial类 2.定义一个测试类Cs2 1.定义一个 factorial类 import java.math.BigDecimal; public ...

  8. 用java写出5的阶乘_java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)

    import java.util.Scanner;public class A{下面的方32313133353236313431303231363533e78988e69d83313333303632 ...

  9. 1000的阶乘用c语言实现,用C语言实现计算大数的阶乘

    #include #define SIZE 1000 int BigFact(int m, short data[]); int main() { short data[SIZE] = { 0 };/ ...

最新文章

  1. 带有en的单词有哪些_en为前缀的单词
  2. 数据挖掘中分类算法小结
  3. 更适合程序员使用的Vim配置 显示行号 语法高亮 智能缩进
  4. 北斗导航 | 基于MATLAB的卫星轨道模拟
  5. [NLP]自然语言的处理步骤
  6. 大数据基础课02 从萌芽到爆发,大数据经历了哪些发展?
  7. 张德芬 如何自我成长
  8. Spring 之 @Cacheable 源码解析(下)
  9. 32-Figma-谷歌表格插件替换数据方法
  10. 教你怎么阅读外文文献
  11. 数值计算之 最小二乘法(3)最小二乘的矩阵解法
  12. button type属性
  13. 知+付费推广:我花3W烧出来的投放经验
  14. JavaScript jq 三位分节法 input输入数字时每3位使用逗号隔开
  15. 2021澳洲wace高考成绩查询,官宣!2019澳洲WACE高考日程表发布!
  16. matlab系统辨识尝试之详细过程1,Matlab系统辨识尝试之详细过程1
  17. 解决setTimeout 计时器重复调用的问题导致执行加速问题
  18. Apifox:节省研发团队的每一分钟
  19. 自学前端,你必须要掌握的3种定时任务
  20. 对innerHtml的理解(附上例子)

热门文章

  1. Android小程序-乐学成语游戏(四)
  2. 网络实名“电子身份证模式”成焦点
  3. Perceptive Advisors携手多个战略联盟创立联拓生物(LianBio)并建构营运平台
  4. Linux学习-MySQL之SQL语句(二)
  5. 当当网最新上架图书html,基于Python3爬虫获取最新上架图书的实现
  6. excel乘法公式怎么输入_25个常用公式计算表+7套施工测量计算表,全自动计算,测量无压力...
  7. 2m分辨率土地利用分类数据集
  8. PTA 习题7-3 判断上三角矩阵
  9. pygame实现俄罗斯方块
  10. Html.RenderPartial的三个参数的用法 用法实例