Re: [問題] 長整數乘上長整數
※ 引述《BearWu (B.r)》之銘言:
: 最近在寫一題程式 還不太懂 經過老師講解之後有比較了解
: 題目的本意 是要以長整數max 乘上 長整數max (以陣列儲存)
: 老師先提了演算法 後來試著寫的時候 以9*99算出來的答案不是正確的
: 小弟的程式如下:
: public class multi
: {
: public static void main(String[] args)
: {
: int[] a ={9,9};
: int[] b ={9,9,9};
: int[] c = new int[5];
: int d = 0; //進位數
: int i;
: for (i = 0 ; i <= 2 ; i++)
明明你的程式碼就是 9 * 999 [指]
: {
: c[i] = (a[0] * b[i] + d) % 10;
: d = (a[0] * b[i] + d) / 10;
: }
: }
: }
: 可是這樣子跑出會變成991 原因是i = 2的時候
: d 還有被執行一次 也就是81 + 9 變成c[2} = 9
: 但實際上不是991而是891
: 請問一下大家 該如何避免多進了那個位?
我是不知道你的程式法怎麼印出結果的
只不過,我強烈懷疑你明明是 9*999
但是你卻只印出後三位數...
不然,程式碼本身應該沒有問題阿...
: 而延伸至long max * long max 又該注意什麼細節呢?
大概就只有效率問題吧? [等著被毆]
: 想跟大家討論討論 先謝謝大家了
====
此篇文章為不符合舉發條款的站內儲存
--
侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw
眾目睽睽無心顫 個人版:telnet://legend.twbbs.org
煢居少聊常人事
殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.194.156
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章