作者cooper6334 (小恐龍)
看板C_and_CPP
標題Re: [問題] 長整數的乘法問題.......
時間Wed Oct 28 19:57:30 2009
※ 引述《liu2007 (薯)》之銘言:
: 我的問題是「長整數的運算」
: 用C++ 6.0 寫的
: 加法跟減法都有做出來
: 但是兩個長整數的乘法
: 每個位數之間的處理狀況是在是太多了
: 所以我想不出快速的解法
: 只好用土法煉鋼的方式
: R = A * B
: 設一個count 存乘數 count = B
: 然後設一個Result 存結果 R = 0
: 然後設一個迴圈
: while ( cout != 0 )
: {
: R = R+A;
: count--;
: }
: 簡單的說就是電腦的原理: 連加
: 以上是我的想法,不是程式碼
: 想請問版上高手是否有更快速的方法??
: 就是直接對每個bit做處理
: 總共做 bit 大次就好了
: 謝謝回答~
你沒說明長整數的數值都是用int陣列表示,不知道的人一定會覺得R會爆掉吧
還好我跟你做同一個作業,知道你想表達的是什麼
舉個例子,一般做直式乘法
1 5 1 5
x 2 3 這個東西事實上應該要寫成 x 2 3
________ _______
4 5 3 15
3 0 2 10
_______ _______
3 4 5 3 4 5
所以就把各位元乘的數字都放進輸出的陣列,最後再一次做進位就可以了
--
我要以耍冷來對抗溫室效應
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.92.212
推 liu2007:囧> 的確是int[] 老實說上一篇32bit,64bit完全看不懂 10/28 21:15
→ liu2007:對認真回答我的問題的大大說聲抱歉 Orz... 10/28 21:15
→ liu2007:對吼....雖然名為一個位數,但實際上可以存到65535... 10/28 21:17
→ liu2007:我笨了...XDDD 感謝 10/28 21:17
推 learnerQQ:經典問題 @"@ 10/29 00:21