大數相乘的一些總結

2021-10-02 14:40:11 字數 972 閱讀 8472

乙個整數n的階乘可以寫成n!,它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中;而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n!是非常困難的。

一段比較完善的**

int

main()

; ans[0]

=1;for

(int i=

2;i<=n;i++)if

(t!=0)

,x=0

;while

(t>0)

for(

int q=

0;q) ans[m++

]=bi[q]

; maxsize+

=x;}

else}}

for(

int i=maxsize-

1;i>=

0;i--

)//逆序輸出陣列,即為階乘的值

cout<; cout

int x=

0;xreturn0;

}

1.每次迴圈不要忘了對進製進行初始化,即t=0;

2.進製t不一定是個位數,有時會是乙個比較大的數字,當迴圈到最後一位的時候

陣列要增加的位數就不止是一位了,所以要把t每一位拆開來存到乙個新建的陣列中,

然後再把新陣列裡面t的每一位,順序賦值給結果陣列進製的位置。

3.大數相乘其實很簡單,結果陣列的每一位與要乘的數相乘,結果的個位

還給原陣列對應的位置,剩餘幾位作為進製,加入迴圈。

eg:147*35,7*35=245(5代替結果陣列7的位置,24作為進製),

4*35+24=164(4代替結果陣列4的位置,16作為進製),

1*35+16=51(1代替結果陣列1的位置,5作進製)。

得到結果陣列ans=;逆序輸出得到答案5145.

一些的總結

大學的教育模式是先教你原理,在教你怎麼用工具 而缺少樂趣,一般大牛 的思維模式都是這樣 先知道原理 在用工具 其實對於普通人來講,一般都是 知道原來還有這種利用方式?到 我要用工具來提高效率 廣用效率還不行 我要知道原理 誒好像現在工具滿足不了我的需要了,我要自己新增規則 新增的規則 以及滿足不了我...

大資料一些名稱

資料倉儲 英文名稱為data warehouse,簡稱dw,研究和解決從資料中獲取資訊,滿足企業商業決策和分析 資料化運營而建立,為企業提供資料智慧型來指導業務流程改進和優化時間 成本 質量和控制。商業智慧型 英文名稱為business intelligence,簡稱bi,指用現代資料倉儲技術 線上...

BOM 的一些總結

一 window物件 1 window 物件是整個瀏覽器的核心,所有物件和集合都以某種方式回接到window物件。2 如果頁面使用的框架集合,每個框架都由他自己的window物件表示,存放在 frames 集合中,在這個集合中,可用數字 由0開始,從左到右,逐行的 或名字對框架進行索引。3 乙個更加...