Java大數階乘

階乘定義:一個正整數的階乘(factorial)是所有小于及等于該數的正整數的積,并且0的階乘為1。自然數n的階乘寫作n!。

階乘公式:n!=1×2×3×...×(n-1)×n

階乘運算的結果可能比較大,基本數據類型很容易溢出,所以用Java提供的BigInteger類進行計算,比較合適。代碼如下:

import java.math.BigInteger;

public class Factorial {

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

    /**
     * @param n
     * @return 返回n的階乘值
     */
    public static BigInteger getFactorial(int n) {
        BigInteger result = new BigInteger("1");
        for (int i = 1; i <= n; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }
        return result;
    }

}

輸出結果:

0!=1
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
16!=20922789888000
17!=355687428096000
18!=6402373705728000
19!=121645100408832000
20!=2432902008176640000
21!=51090942171709440000
22!=1124000727777607680000
23!=25852016738884976640000
24!=620448401733239439360000
25!=15511210043330985984000000
26!=403291461126605635584000000
27!=10888869450418352160768000000
28!=304888344611713860501504000000
29!=8841761993739701954543616000000
30!=265252859812191058636308480000000
31!=8222838654177922817725562880000000
32!=263130836933693530167218012160000000
33!=8683317618811886495518194401280000000
34!=295232799039604140847618609643520000000
35!=10333147966386144929666651337523200000000
36!=371993326789901217467999448150835200000000
37!=13763753091226345046315979581580902400000000
38!=523022617466601111760007224100074291200000000
39!=20397882081197443358640281739902897356800000000
40!=815915283247897734345611269596115894272000000000
41!=33452526613163807108170062053440751665152000000000
42!=1405006117752879898543142606244511569936384000000000
43!=60415263063373835637355132068513997507264512000000000
44!=2658271574788448768043625811014615890319638528000000000
45!=119622220865480194561963161495657715064383733760000000000
46!=5502622159812088949850305428800254892961651752960000000000
47!=258623241511168180642964355153611979969197632389120000000000
48!=12413915592536072670862289047373375038521486354677760000000000
49!=608281864034267560872252163321295376887552831379210240000000000
50!=30414093201713378043612608166064768844377641568960512000000000000
51!=1551118753287382280224243016469303211063259720016986112000000000000
52!=80658175170943878571660636856403766975289505440883277824000000000000
53!=4274883284060025564298013753389399649690343788366813724672000000000000
54!=230843697339241380472092742683027581083278564571807941132288000000000000
55!=12696403353658275925965100847566516959580321051449436762275840000000000000
56!=710998587804863451854045647463724949736497978881168458687447040000000000000
57!=40526919504877216755680601905432322134980384796226602145184481280000000000000
58!=2350561331282878571829474910515074683828862318181142924420699914240000000000000
59!=138683118545689835737939019720389406345902876772687432540821294940160000000000000
60!=8320987112741390144276341183223364380754172606361245952449277696409600000000000000
61!=507580213877224798800856812176625227226004528988036003099405939480985600000000000000
62!=31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
63!=1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
64!=126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
65!=8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
66!=544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
67!=36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
68!=2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
69!=171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
70!=11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
71!=850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
72!=61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000
73!=4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
74!=330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
75!=24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
76!=1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
77!=145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
78!=11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
79!=894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
80!=71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
81!=5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
82!=475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
83!=39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
84!=3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
85!=281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
86!=24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
87!=2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
88!=185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
89!=16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
90!=1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
91!=135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
92!=12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
93!=1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
94!=108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
95!=10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
96!=991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
97!=96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
98!=9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
99!=933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373