日期:2014-05-20  浏览次数:20808 次

有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想
有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想


------解决方案--------------------
直接A*B算不出?
------解决方案--------------------
考虑下转成List或数组,循环运算后在数组中输出
------解决方案--------------------
一般都是用数组,或者集合之类的存储数据
我去年去掌上通面试的时候就问的这个,

------解决方案--------------------
大整数相乘,大学算法中学过的,俺都忘的差不多了。好像用分治法可以解决的吧。
------解决方案--------------------
难道8个字节的ulong都存不下?

那你就分解一下,比如1234000*4567,可以分解成1234*4567*1000,然后就只算前两个数相乘,就像科学计数法似的
------解决方案--------------------
xxxxx
X yyyyy
--------
aaaaa 一个个集合
 aaaaa0
aaaaa00
.......
--------
bbbbbbb 集合的同一位置相加

小学教乘法的时候不就是这样做么,如果其中的一个数xxx很小,用一个整数能表示的话,就更简单了



------解决方案--------------------
探讨
难道8个字节的ulong都存不下?

那你就分解一下,比如1234000*4567,可以分解成1234*4567*1000,然后就只算前两个数相乘,就像科学计数法似的

------解决方案--------------------
难道是 -∞*∞