大整数乘法python3实现
2015-02-09 17:49
746 查看
因为python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,可是思想是一样的。利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置開始算的。代码例如以下:
multi函数是大整数相乘的主函数,输入是字符串格式的两个大整数,输出是字符串格式的结果;list2str函数是把包括每一位数字的list转换成str,并把最高位占位用的0删除。输出结果例如以下:
multi后边跟的是用普通大整数思想计算的结果,ok后边跟的是python自己直接计算的相乘结果,用于对照结果。
转载请注明:转自/article/1590061.html
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自己直接计算的相乘结果,用于对照结果。
转载请注明:转自/article/1590061.html
相关文章推荐
- 大整数乘法python3实现
- python实现大整数相乘---格子乘法
- 大整数乘法(C语言实现)
- 算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
- ip 与 整数间 的相互转换 python实现
- C语言实现大数整数乘法
- 大整数乘法-C语言实现
- 编写一个程序,实现两个256位的十进制整数的乘法运算.
- [大整数乘法] java代码实现
- 用整数乘法实现快速颜色混和
- 双链表实现大整数的加法与乘法[VC++]
- 【Python】Python 4行语句实现九九乘法阶梯表
- C++实现大整数乘法
- 基于数论变换的大整数乘法Java代码实现
- 大整数乘法分而治之递归实现
- 实现并打印小于9的任意整数的n*n乘法表
- 实现大位整数的加/减/乘法的java工具类
- 用python写高精度的数据乘法,要求输入的书不大于256的正整数,计算其结果
- 一道面试题(C#实现了超大整数的加减乘法运算)
- 分治法优化大整数乘法 C++实现