Re: [問題] 長整數的乘法問題.......

看板C_and_CPP作者 (小恐龍)時間14年前 (2009/10/28 19:57), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

10/28 21:15, , 1F
囧> 的確是int[] 老實說上一篇32bit,64bit完全看不懂
10/28 21:15, 1F

10/28 21:15, , 2F
對認真回答我的問題的大大說聲抱歉 Orz...
10/28 21:15, 2F

10/28 21:17, , 3F
對吼....雖然名為一個位數,但實際上可以存到65535...
10/28 21:17, 3F

10/28 21:17, , 4F
我笨了...XDDD 感謝
10/28 21:17, 4F

10/29 00:21, , 5F
經典問題 @"@
10/29 00:21, 5F
文章代碼(AID): #1Aw36k0w (C_and_CPP)
文章代碼(AID): #1Aw36k0w (C_and_CPP)