社区
非技术区
帖子详情
有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想
jhdxhj
2011-03-02 10:45:38
有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想
...全文
224
11
打赏
收藏
有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想
有2个很大的数相乘(大到目前的数字无法表示的数),求实现思想
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heidi784060468
2011-11-25
打赏
举报
回复
用数组的话是蛮力算法,不是优解。最好的是用分而治之法,基本思想是给定X和Y都是n位整数,计算乘积XY。分治算法思想,将n位X和Y分成2段,每段n/2位。则X分为AB两段,Y分为CD两段。
qiudong_5210
2011-03-03
打赏
举报
回复
难道是
-∞*∞
vrhero
2011-03-03
打赏
举报
回复
[Quote=引用 7 楼 bluceyoung 的回复:]
难道8个字节的ulong都存不下?
那你就分解一下,比如1234000*4567,可以分解成1234*4567*1000,然后就只算前两个数相乘,就像科学计数法似的
[/Quote]
8个字节的整数才多大?太小了...在某些领域如数学、天文等简单小到可以忽略不计...
.NET 4.0的System.Numerics.BigInteger结构表示无固定长度的任意大的有符号整数,只受内存限制...但其实它的原理仍然是字节数组存储,乘法是分治法转换为加法...
不过“目前的数字无法表示的数”是不存在的...数学上有“无限大”,没有“无法表示”...
hztltgg
2011-03-03
打赏
举报
回复
xxxxx
X yyyyy
--------
aaaaa 一个个集合
aaaaa0
aaaaa00
.......
--------
bbbbbbb 集合的同一位置相加
小学教乘法的时候不就是这样做么,如果其中的一个数xxx很小,用一个整数能表示的话,就更简单了
江溪浣君
2011-03-03
打赏
举报
回复
难道8个字节的ulong都存不下?
那你就分解一下,比如1234000*4567,可以分解成1234*4567*1000,然后就只算前两个数相乘,就像科学计数法似的
PitTroll
2011-03-02
打赏
举报
回复
大整数相乘,大学算法中学过的,俺都忘的差不多了。好像用分治法可以解决的吧。
jhdxhj
2011-03-02
打赏
举报
回复
[Quote=引用 3 楼 whb147 的回复:]
一般都是用数组,或者集合之类的存储数据
我去年去掌上通面试的时候就问的这个,
[/Quote]
能否说的详细点呢?
whb147
2011-03-02
打赏
举报
回复
一般都是用数组,或者集合之类的存储数据
我去年去掌上通面试的时候就问的这个,
hahanyang
2011-03-02
打赏
举报
回复
考虑下转成List或数组,循环运算后在数组中输出
打酱油的
2011-03-02
打赏
举报
回复
直接A*B算不出?
java中两个
很大
的
数
相乘
_java 两个大
数
字
的
相乘
这段代码展示了如何手动
实现
两个大整
数
的乘法运算,通过反转字符串、逐位
相乘
并处理进位来完成计算。算法使用了基本的学校乘法方法,将输入的长整
数
字
符串分别翻转,然后逐位
相乘
并累加到结果
数
组中。最后,输出计算得到的大整
数
结果。
java中两个
很大
的
数
相乘
_两个大
数
相乘
-Java
该博客介绍了一种不使用BigInter库的方法来计算两个大
数
的乘积。通过模拟手工乘法过程,将每个
数
字
按位遍历并逐位
相乘
,然后将结果累加到结果
数
组中。最后,将
数
组反转并拼接成字符串形式输出。这种方法适用于处理非常大的
数
字
乘法问题。
算法之大
数
相乘
本文探讨了在Java中处理大
数
相乘
问题,由于int和long类型的限制,需要采用其他方式存储和计算大
数
。通过将大
数
表示
为字符串或
数
组,并运用类似于列竖式的计算方法,将大
数
相乘
转换为多位
数
的逐位
相乘
和进位操作。文章提供了一个具体的Java
实现
,将30个9
相乘
的过程详细解析,展示了如何将复杂问题分解为简单的计算步骤。
[C]
很大
的
数
字
相乘
该博客介绍了使用C语言
实现
大
数
相乘
的方法,基于小学竖式乘法原理。虽然能解决较大
数
据的乘法问题,但运算效率较低,超过5万位时已耗时约2秒,并受限于内存限制。博主分享了源代码并表达了进一步优化的决心。
c语言大
数
字
乘法,
很大
的
数
相乘
怎么办?
本文介绍了一个使用 C++
实现
的大
数
乘法算法。通过动态分配内存来存储大
数
,并采用逐位
相乘
的方式
实现
了两个大
数
之间的乘法运算。文章详细展示了如何处理进位以及如何逆序输出结果。
非技术区
7,776
社区成员
63,115
社区内容
发帖
与我相关
我的任务
非技术区
.NET技术 非技术区
复制链接
扫一扫
分享
社区描述
.NET技术 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章