作者PsMonkey (痞子军团团长)
站内java
标题Re: [问题] 长整数乘上长整数
时间Fri Jan 5 01:33:02 2007
※ 引述《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