大整数乘法python3实现
Python3 实现 整数 乘法
2023-09-14 09:10:23 时间
因为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删除。输出结果例如以下:
multi后边跟的是用普通大整数思想计算的结果,ok后边跟的是python自己直接计算的相乘结果,用于对照结果。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25215517
相关文章
- python3汉诺塔简单实现代码
- python3之装饰器修复技术@wraps
- python3 bytes 和 string转换
- python3实现字符串的全排列的方法(无重复字符)
- python3实现unix域协议(tcp、udp)通讯
- Python3 以table表格的形式打印数据
- Python3空字符串和len()函数
- python3将列表当做堆栈使用
- Python3 数据类型转换
- 力扣——26. 删除有序数组中的重复项(Java、C、python3实现)
- 力扣——831. 隐藏个人信息(Java、JavaScript、python3实现耗时最短)
- 【Python3网络爬虫开发实战】1.3.1-lxml的安装
- python3实现进度条
- python3 操作appium
- python3.x与2.x区别
- python3(二)Numpy
- 十行代码实现Python3 SMTP发送邮件
- python3面向对象的设计和实现