1000! 阶乘怎么算?

在JAVA中,有BigInteger这个类,可以为你解决 . 但是如果是在C++,或者不用这个BigInteger又怎么解决呢?

由于没有C++编译器,所以只能用JAVA来代替一下..

阶乘

6! = 6 * 5 * 4 * 3 * 2 * 1 = 720

1000! = 1000 * 999 * 998 * ... * 1

JAVA代码

public class FactoryN {

public static void main(String[] args) {

/**

* JAVA 自带

*/

System.out.println(fact(1000));

/**

* 自已写

*/

System.out.println(calcFact(1000));

}

/**

* 这是用JAVA BigInteger 处理

*/

public static BigInteger fact(int index) {

BigInteger bigInteger = new BigInteger("1");

for (int i = 1; i <= index; i++) {

bigInteger = bigInteger.multiply(new BigInteger(i + ""));

}

return bigInteger;

}

/**

* 下面是我的方法

*/

public static String calcFact(int fact) {

String res = "1";

for (int i = 1; i <= fact; i++) {

res = calc(i, res);

}

return res;

}

public static String calc(int index, String ms) {

int[] digits = stringArr2IntArr(ms);

List integers = new ArrayList<>();

int carry = 0;

for (int i = 0; i < digits.length; i++) {

int result = digits[i] * index + carry;

integers.add(result % 10);

carry = result / 10;

}

if (carry != 0)

integers.add(carry);

StringBuilder calcResult = new StringBuilder();

for (int i = integers.size() - 1; i >= 0; i--) {

calcResult.append(integers.get(i));

}

return calcResult.toString().trim();

}

public static int[] stringArr2IntArr(String str) {

char[] strings = str.toCharArray();

int[] ints = new int[strings.length];

for (int i = 0; i < strings.length; i++) {

ints[strings.length - i - 1] = Integer.parseInt(strings[i] + "");

}

return ints;

}

}

结果

402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

1000的阶层 java,1000!阶乘怎么算相关推荐

  1. 1000+道 互联网Java架构师面试题

    1000+道 互联网Java架构师面试题 这套 1000+ 道的 Java 面试手册我整理了足足 1 个月,上传到 GitHub 上目前 star 数达到了 30K+ .2022 年的互联网行业竞争越 ...

  2. PHP 1000只狗,从第一头起算,求最后活着的狗 代码实现

    1.如果题目是1000只狗,从第一头起算,每隔一头杀一头(数到底后从第一头重新开始算),最后只留一只是活的,请问这是第几只狗? 2.写入一个数组,不管值是多少,按数组下标进行排除,答案:512 < ...

  3. 【Java】哈希算法的实现-----Hash

    内容目录 哈希结构概述 代码实现 注意问题 HashMap迭代的方式 解决哈希冲突的方式 HashTable和HashMap的联系与区别 java中的四种引用 五道大数据习题 哈希结构概述 1.概念: ...

  4. 骁龙870和天玑1000+哪个好 天玑1000+和骁龙870对比,哪个更强

    骁龙870的整体规格与骁龙865 Plus保持一致,基于7nm工艺打造,并非最新的5nm,CPU采用一个大核心+三个中核心+四个小核心的设计. 手机处理器选骁龙870还是天玑1000+这些点很重要 看 ...

  5. 计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。帮我写代码...

    好的,我可以帮助你写代码.以下是 Python 代码: def calculate_postage(weight, is_urgent):base_fee = 8if weight > 1000 ...

  6. Java 1000阶乘计算

    1000的阶乘使用BigInteger import java.math.BigInteger; import java.util.Scanner;public class Main {public ...

  7. java 1000个线程_java,一个程序建立1000个线程,每一个线程加1到一个变量sum。

    1.程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销 2.在创建线程数多的情况下,可以考虑使用线程池 以下是Java自带的几 ...

  8. 1000种对Java的响应没有死

    当一篇评论发表1000条评论时,值得考虑一下. 我上周的社论" 如果Java即将死,它肯定看起来非常健康 "在各个开发人员社区中都感到不安 . 在Reddit,Hacker New ...

  9. 最新1000道高频Java面试题,包含25个技术栈等面试攻略(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

最新文章

  1. 干货 | 神经网络原来这么简单,机器学习入门贴送给你
  2. python文本解析_Python之文本文件解析
  3. mysql 5.7和8.0区别_前沿观察 | MySQL性能基准测试对比:5.7 VS 8.0
  4. cdh 安装_CDH的介绍和部署
  5. django18:auth模块
  6. c语言入门 在线,c语言入门课件1.docx
  7. 清华网红自行车火了!背后是登在《自然》上的黑科技
  8. 华为云PaaS梳理了客户可能上云的三类场景和七种解决方案
  9. feign传递数组_feign中传递自定义MultipartFile
  10. Linux系统安装完成后创建交换空间
  11. vue element-UI的树形结构,父级关联,返回数据反选的问题
  12. CodeForces - 837F(二分组合思维)
  13. 按一定条件筛选df1,返回结果中df1的索引取df2的数据
  14. 小学计算机上机评分表,海安市实验小学信息技术学科素养考核方案
  15. 短信验证php_php如何实现短信验证
  16. 2000-2020年地级市进出口总额数据
  17. 上对不起父母,下对不起孩子,你却自以为美好
  18. 一欧拉函数(Euler‘s totient function)
  19. Authorization—权限控制流程
  20. 跨时钟域传输和Verilog代码

热门文章

  1. 《脱颖而出——成功网店经营之道》一1.6 电商通常都会聚集在这几个地方
  2. IDEA熟能生巧大纲
  3. 虚拟机安装雨林木风XP遇到的一些问题
  4. [C语言]结构体进阶与枚举联合
  5. 申请腾讯地图用户Key流程
  6. C# DateTime类详解
  7. 偶然发现的Python自学宝藏地带!
  8. 小学计算机科学与技术,试论小学计算机科学与技术课改分析
  9. python xgboost输出变量重要性_xgboost输出特征重要性排名和权重值
  10. 怎么把俄语论文翻译成中文