大整数乘法python3实现
2014-05-07 15:13
337 查看
由于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
相关文章推荐
- python实现大整数相乘---格子乘法
- 大整数乘法python3实现
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(Python实现)
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- python3.3实现乘法表示例
- Python-用函数实现9*9乘法口诀
- C语言实现大数整数乘法
- python实现计算字符串中的整数的总和
- python实现高精度乘法
- C语言实现大整数乘法
- 程序员面试金典: 9.7位操作 7.4只用加号实现整数的乘法、减法和除法运算
- 用整数乘法实现快速颜色混和
- java中不用BigInteger实现超大整数的乘法操作
- 整数乘法---FFT 的递归实现
- 位运算实现小正整数乘法
- Python实现在给定整数序列中找到和为100的所有数字组合
- Python3一行代码实现乘法表
- 算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
- 【Java】只允许使用加号,实现整数的减法,乘法,除法