大整数乘法python3实现

大整数乘法python3实现由于python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,但是思想是一样的。利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置开始算的。代码如下:importsysdeflist2str(li): whileli[0]==0: delli[0] res=” foriinli: res+

大家好,又见面了,我是你们的朋友全栈君。

        由于python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,但是思想是一样的。利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置开始算的。代码如下:

import sys

def list2str(li):
	while li[0]==0:
		del li[0]
	res=''
	for i in li:
		res+=str(i)
	return res

def multi(stra,strb):
	aa=list(stra)
	bb=list(strb)
	lena=len(stra)
	lenb=len(strb)
	result=[0 for i in range(lena+lenb)]
	for i in range(lena):
		for j in range(lenb):
			result[lena-i-1+lenb-j-1]+=int(aa[i])*int(bb[j])
	for i in range(len(result)-1):
		if result[i]>=10:
			result[i+1]+=result[i]//10
			result[i]=result[i]%10
	return list2str(result[::-1])

if __name__=='__main__':
	if len(sys.argv)!=3:
		print('请输入两个参数')
		exit()
	a=sys.argv[1]
	b=sys.argv[2]
	res=multi(a,b)
	print('multi',res)
	print('ok',int(a)*int(b))

multi函数是大整数相乘的主函数,输入是字符串格式的两个大整数,输出是字符串格式的结果;list2str函数是把包含每一位数字的list转换成str,并把最高位占位用的0删除。输出结果如下:

大整数乘法python3实现

multi后边跟的是用普通大整数思想计算的结果,ok后边跟的是python自己直接计算的相乘结果,用于对比结果。

转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25215517

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137099.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • H3C交换机常用配置命令大全

    H3C交换机常用配置命令大全H3C交换机常用配置命令大全一.用户配置:<H3C>system-view[H3C]superpasswordH3C设置用户分级密码[H3C]undosuperpassword删除用户分级密码[H3C]localuserbigheap1234561Web网管用户设置,1(缺省)为管理级用户…

    2022年6月20日
    41
  • 在IDEA中创建maven项目

    在IDEA中创建maven项目在IDEA中创建maven项目  现在的JavaWeb项目中,绝大多数都是采用的maven结构的项目,而对于maven支持的最好的IDE开发工具为IDEA,所以说我就以在IDEA上为例来进行maven开发的讲解。

    2022年6月22日
    58
  • 实时操作系统UCOS学习笔记1—-UCOSII简介

    实时操作系统UCOS学习笔记1—-UCOSII简介前面我们所有的实验都是跑的裸机程序(裸奔),从本章开始,我们开始介绍UCOSII(实时多任务操作系统内核)。UCOSII简介UCOSII的前身是UCOS,最早出自于1992年美国嵌入式系统专家JeanJ.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把UCOS的源码发布在该杂志的BBS上。目前最新的版本:UCOSIII已经出来,但是现在使用最为广泛的还是UCOSII,本章主要针对UCOSII进行介绍。UCOSII是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核

    2022年6月3日
    39
  • java中url加密处理

    java中url加密处理packagetest importjava security Key importjava security SecureRandom importjavax crypto Cipher importjavax crypto KeyGenerator importsun misc BASE64Decode importsun misc BASE64Encode

    2025年7月25日
    3
  • 阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?

    阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?

    2021年9月21日
    73
  • matlab norm函数作用_norm值计算

    matlab norm函数作用_norm值计算%X为向量,求欧几里德范数,即。n=norm(X,inf)%求-范数,即。n=norm(X,1)%求1-范数,即。n=norm(X,-inf)%求向量X的元素的绝对值的最小值,即。n=norm(X,p)%求p-范数,即,所以norm(X,2)=norm(X)。命令矩阵的范数函数norm格式n=norm(A)

    2025年8月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号