首页 > 其他分享 >计算n的阶乘,n的取值范围1到2000(代码实现)

计算n的阶乘,n的取值范围1到2000(代码实现)

时间:2022-10-31 13:09:31浏览次数:41  
标签:返回 BigInteger val int 整数 2000 当前 阶乘 取值


题目:

计算n的阶乘,n的取值范围1到2000

思路:

寻常的基本数据类型没有办法存储这样大的数,这里借助Java的BigInteger类来实现,需要注意的一点BigInteger,不能够直接使用+,-,*,/的符号进行运算,所以需要通过BigInteger类的方法实现。

代码:
 

import java.math.BigInteger;

public class Test {
public static void main(String[] args) {

BigInteger n,m;//定义大整数n,m. m用来存放累成的值,n比较新参加累乘的整数
n= BigInteger.valueOf(1);
for (int i = 2; i <=2000; i++) {
m= BigInteger.valueOf(i);
n=n.multiply(m);//表示乘法
}
System.out.println(n);
}

}

结果:

 

331627509245063324117539338057632403828111720810578039457193543706038077905600822400273230859732592255402352941225834109258084817415293796131386633526343688905634058556163940605117252571870647856393544045405243957467037674108722970434684158343752431580877533645127487995436859247408032408946561507233250652797655757179671536718689359056112815871601717232657156110004214012420433842573712700175883547796899921283528996665853405579854903657366350133386550401172012152635488038268152152246920995206031564418565480675946497051552288205234899995726450814065536678969532101467622671332026831552205194494461618239275204026529722631502574752048296064750927394165856283531779574482876314596450373991327334177263608852490093506621610144459709412707821313732563831572302019949914958316470942774473870327985549674298608839376326824152478834387469595829257740574539837501585815468136294217949972399813599481016556563876034227312912250384709872909626622461971076605931550201895135583165357871492290916779049702247094611937607785165110684432255905648736266530377384650390788049524600712549402614566072254136302754913671583406097831074945282217490781347709693241556111339828051358600690594619965257310741177081519922564516778571458056602185654760952377463016679422488444485798349801548032620829890965857381751888619376692828279888453584639896594213952984465291092009103710046149449915828588050761867924946385180879874512891408019340074625920057098729578599643650655895612410231018690556060308783629110505601245908998383410799367902052076858669183477906558544700148692656924631933337612428097420067172846361939249698628468719993450393889367270487127172734561700354867477509102955523953547941107421913301356819541091941462766417542161587625262858089801222443890248677182054959415751991701271767571787495861619665931878855141835782092601482071777331735396034304969082070589958701381980813035590160762908388574561288217698136182483576739218303118414719133986892842344000779246691209766731651433494437473235636572048844478331854941693030124531676232745367879322847473824485092283139952509732505979127031047683601481191102229253372697693823670057565612400290576043852852902937606479533458179666123839605262549107186663869354766108455046198102084050635827676526589492393249519685954171672419329530683673495544004586359838161043059449826627530605423580755894108278880427825951089880635410567917950974017780688782869810219010900148352061688883720250310665922068601483649830532782088263536558043605686781284169217133047141176312175895777122637584753123517230990549829210134687304205898014418063875382664169897704237759406280877253702265426530580862379301422675821187143502918637636340300173251818262076039747369595202642632364145446851113427202150458383851010136941313034856221916631623892632765815355011276307825059969158824533457435437863683173730673296589355199694458236873508830278657700879749889992343555566240682834763784685183844973648873952475103224222110561201295829657191368108693825475764118886879346725191246192151144738836269591643672490071653428228152661247800463922544945170363723627940757784542091048305461656190622174286981602973324046520201992813854882681951007282869701070737500927666487502174775372742351508748246720274170031581122805896178122160747437947510950620938556674581252518376682157712807861499255876132352950422346387878954850885764466136290394127665978044202092281337987115900896264878942413210454925003566670632909441579372986743421470507213588932019580723064781498429522595589012754823971773325722910325760929790733299545056388362640474650245080809469116072632087494143973000704111418595530278827357654819182002449697761111346318195282761590964189790958117338627206088910432945244978535147014112442143055486089639578378347325323595763291438925288393986256273242862775563140463830389168421633113445636309571965978466338551492316196335675355138403425804162919837822266909521770153175338730284610841886554138329171951332117895728541662084823682817932512931237521541926970269703299477643823386483008871530373405666383868294088487730721762268849023084934661194260180272613802108005078215741006054848201347859578102770707780655512772540501674332396066253216415004808772403047611929032210154385353138685538486425570790795341176519571188683739880683895792743749683498142923292196309777090143936843655333359307820181312993455024206044563340578606962471961505603394899523321800434359967256623927196435402872055475012079854331970674797313126813523653744085662263206768837585132782896252333284341812977624697079543436003492343159239674763638912115285406657783646213911247447051255226342701239527018127045491648045932248108858674600952306793175967755581011679940005249806303763141344412269037034987355799916009259248075052485541568266281760815446308305406677412630124441864204108373119093130001154470560277773724378067188899770851056727276781247198832857695844217588895160467868204810010047816462358220838532488134270834079868486632162720208823308727819085378845469131556021728873121907393965209260229101477527080930865364979858554010577450279289814603688431821508637246216967872282169347370599286277112447690920902988320166830170273420259765671709863311216349502171264426827119650264054228231759630874475301847194095524263411498469508073390080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

计算n的阶乘,n的取值范围1到2000(代码实现)_基本数据类型

关于BigInteger的常用方法:

  •  BigInteger abs() 返回大整数的绝对值
  • BigInteger add(BigInteger val) 返回两个大整数的和
  • BigInteger and(BigInteger val) 返回两个大整数的按位与的结果
  • BigInteger andNot(BigInteger val) 返回两个大整数与非的结果
  • BigInteger divide(BigInteger val) 返回两个大整数的商
  • double doubleValue() 返回大整数的double类型的值
  • float floatValue() 返回大整数的float类型的值
  • BigInteger gcd(BigInteger val) 返回大整数的最大公约数
  • int intValue() 返回大整数的整型值
  • long longValue() 返回大整数的long型值
  • BigInteger max(BigInteger val) 返回两个大整数的最大者
  • BigInteger min(BigInteger val) 返回两个大整数的最小者
  • BigInteger mod(BigInteger val) 用当前大整数对val求模
  • BigInteger multiply(BigInteger val) 返回两个大整数的积
  • BigInteger negate() 返回当前大整数的相反数
  • BigInteger not() 返回当前大整数的非
  • BigInteger or(BigInteger val) 返回两个大整数的按位或
  • BigInteger pow(int exponent) 返回当前大整数的exponent次方
  • BigInteger remainder(BigInteger val) 返回当前大整数除以val的余数
  • BigInteger leftShift(int n) 将当前大整数左移n位后返回
  • BigInteger rightShift(int n) 将当前大整数右移n位后返回
  • BigInteger subtract(BigInteger val)返回两个大整数相减的结果
  • byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中
  • String toString() 将当前大整数转换成十进制的字符串形式
  • BigInteger xor(BigInteger val) 返回两个大整数的异或

标签:返回,BigInteger,val,int,整数,2000,当前,阶乘,取值
From: https://blog.51cto.com/u_12277263/5809176

相关文章

  • foobar2000 v1.6.13 汉化版
    foobar2000v1.6.13汉化版-----------------------【软件截图】----------------------    -----------------------【软件介绍】----------------------fooba......
  • 求阶乘数
    /* inti; intsum=0; for(i=1;i<=20;i++){ sum+=jc(i); } printf("%d",sum);*/#include<stdio.h>doublejc(intm){ intj; doublechengji=1;......
  • DataTable 循环取值
    //list是datatable类型for(inti=0;i<list.Rows.Count;i++){......
  • 计算n的阶乘
    #include<stdio.h>intmain(){     inti=0;     intn=0;     inta=1;     scanf("%d",&n);     for(i=1;i<......
  • 求n的阶乘(函数)
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intFac(intn){ inti=0; intret=1; for(i=1;i<=n;i++) { ret*=i; } returnret;}intm......
  • 递归求阶乘
    intFac(intn){ if(n<=1) return1; else returnn*Fac(n-1);}           //括号里放的是方法(要循环的)(个人理解)intmain(){ in......
  • java递归(java递归求阶乘)
    JAVA中递归的概念说简单点就是方法调用自身方法。给你个例子:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多......
  • zabbix默认监控负载取值不正确。
    服务器负载很高(如下图),查看zabbix监控却没有告警(原因:模板TemplateOSLinux监控取值与实际服务器内负载不一致)解决办法:找到Processorload(1minaveragepercore......
  • 阶乘和的关系
    题目链接题目大意:    给定n个正整数和一个数k,问这n个数的阶乘之和能不能被k的阶乘整除,既:(a[1]!+a[2]!+a[3]!+....+a[n]!)  %  k!  ==  0。题目分析:  对......
  • 在使用Nacos作为统一配置中心的时候,项目中使用@Value注解从Nacos获取值,一直报错Could
    在使用Nacos作为统一配置中心的时候,项目中使用@Value注解从Nacos获取值,一直报错Couldnotresolveplaceholder'blog.website'invalue"${blog.website}".如下图:问题分析......