c語言我想求21 , 但是long int超出了範圍,怎麼寫?

時間 2021-06-09 05:24:59

1樓:

20的階層沒超吧??先把20的階層算出來。。然後除以100。。。最後乘個21。。。然後後面再補兩個0。。。或者20的階層算出來。。然後直接筆算啊。。。

2樓:朱涵俊

如果僅僅是限於21!,可以用64位無符號整數,把10跳過,這樣64位無符號數可以表示,最後列印在輸出個0。

#include

void main()

結果是:51090942171709440000

3樓:Tomorrow

第一,可以使用GMP大數運算庫;

第二,可以自己編寫階乘演算法:

#include

"stdafx.h"

#include

"math.h"

#define MAX_N 10000000.00//能夠計算的最大的n值,如果你想計算更大的數對數,可將其改為更大的值

#define MAX_MANTISSA (1e308/MAX_N)

//最大尾數

typedef

unsigned

short

WORD

;struct

bigNum

;short

GetExpBase2

(doublea)

// 獲得 a 的階碼

double

GetMantissa

(doublea)

// 獲得 a 的尾數

void

calcFac

(struct

bigNum*p

,intn)

p->n1*=

(double)i

;}}void

printfResult

(struct

bigNum*p

,char

buff

)int

main

(int

argc

,char

*argv)

我現在沒學完C語言,但是學校已經開了資料結構課程,感覺像聽天書一樣,如何更好地理解資料結構?

導何 我目前也是這個狀況orz 打算當下 工作日 的資料結構課認真預習複習然後利用週末時間先好好補C語言 安利翁凱老師的C語言課程和陳越老師的資料結構課程,B站都有來著 共勉 蘇菲的老爸 理解方法的前提是先理解問題。你可以先嘗試去理解要資料結構解決的問題,然後嘗試用自己的方法解決這些問題,再跟資料結...

我不是漢語言文學專業的,21年想跨專業考研,但家人覺得我對此專業一無所知並不贊成,現在開始成功率大嗎?

煙火裡的塵埃 你的腳下,是自己的人生路 贏了,別人都會贊同你的抉擇 輸了,只有你自己承擔失敗。自己想做的事情,就要全力以赴,別多年以後,怨天尤人,自己的人生自己主宰,別人的話可以充實你的認知,但是不能強迫扭曲你的選擇。 cyj 主要是得考慮好,自己對漢語言文學是不是真的感興趣,畢竟興趣是學習的第一大...

C 語言中如何盡量簡單地用 while 語句求 1 到 10 的階乘?

如果你的模數不是質數的話,請先拆成質數的整次冪。然後對於每乙個整次冪,用 exLucas 裡面提到的遞推方法解出在這一整次冪下的階乘結果。隨後只需要用 CRT 合併即可。由於題主沒有貼出模數,所以我沒法寫出更詳細的過程。 靜水流深MXY include intmain return0 墨黎 whil...