如何实现简单大数相乘?

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

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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