如何实现简单大数相乘?

例如111111001010101001*1001010101011010010100  (题目只有0和1)如何去实现?
#笔试题目#
全部评论
我可以说用高精度吗???
点赞 回复 分享
发布于 2018-10-13 09:50
其实都不需要乘,根据当前的乘数是1还是0,是零直接进行下一次循环,是1直接将被乘数移位累加就行了
点赞 回复 分享
发布于 2018-09-24 10:14
""" 输入两个数A和B A:111111001010101001 B:1001010101011010010100 """ def bignummul(num_a, num_b): a = min(num_a, num_b) b = max(num_a, num_b) res = 0 str_a = str(a) alen = len(str_a) for i in range(alen - 1, -1, -1): if str_a[i] == '0': continue else: res += b * 10**(alen - 1 - i) return res a = 111111001010101001 b = 1001010101011010010100 print(bignummul(a, b))
点赞 回复 分享
发布于 2018-10-13 10:23
python一行就解决了,int无限大
点赞 回复 分享
发布于 2018-09-24 12:27
把乘数分成一位一位的,循环乘,每次乘积移位累加就行了
点赞 回复 分享
发布于 2018-09-24 10:12
py一行到位
点赞 回复 分享
发布于 2018-09-24 09:55
BigInteger,或者数组
点赞 回复 分享
发布于 2018-09-24 09:25
有个公式你去搜一下,大致就是分治法的思想
点赞 回复 分享
发布于 2018-09-24 09:23
分割,乘起来,然后加起来
点赞 回复 分享
发布于 2018-09-24 09:19
用数组,算进位,预计算目标长度进行分配大小
点赞 回复 分享
发布于 2018-09-24 08:59
考虑平时列竖式手算乘法时的算法。。
点赞 回复 分享
发布于 2018-09-24 08:55

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务