如何实现简单大数相乘?

例如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

相关推荐

不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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