python实现大数相乘
2013-03-10 17:03
232 查看
大数相乘使用数组list记录数据,类似小学时做乘法计算时竖着的计算方法:
1、把数据读入数组, 并实现数组逆转。数组顺序0~n与位数个位、十位....一致
2、创建存储结果数组,长度默认为两个被乘数长度之和
3、按位相乘并存储在对应的结果数组中
5、执行进位操作,结果数组从0开始,如果大于9则进位到下一位并获取新结果
6、结果执行逆序
def multipy(aaa,bbb):
aaa.reverse()
bbb.reverse()
ccc = [0 for k in range(0,len(aaa)+len(bbb))]
for i in range(0,len(aaa)):
for j in range(0,len(bbb)):
ccc[i+j]+=aaa[i]*bbb[j]
for m in range(0,len(ccc)):
if(ccc[m]>9):
ccc[m+1] += ccc[m]/10
ccc[m] = ccc[m] % 10
ccc.reverse()
return ccc
1、把数据读入数组, 并实现数组逆转。数组顺序0~n与位数个位、十位....一致
2、创建存储结果数组,长度默认为两个被乘数长度之和
3、按位相乘并存储在对应的结果数组中
5、执行进位操作,结果数组从0开始,如果大于9则进位到下一位并获取新结果
6、结果执行逆序
def multipy(aaa,bbb):
aaa.reverse()
bbb.reverse()
ccc = [0 for k in range(0,len(aaa)+len(bbb))]
for i in range(0,len(aaa)):
for j in range(0,len(bbb)):
ccc[i+j]+=aaa[i]*bbb[j]
for m in range(0,len(ccc)):
if(ccc[m]>9):
ccc[m+1] += ccc[m]/10
ccc[m] = ccc[m] % 10
ccc.reverse()
return ccc
相关文章推荐
- 大数相加与相乘算法实现
- Java实现两个大数相乘
- Python实现矩阵相乘
- 链表实现大数相加和大数相乘
- C语言实现两个大数相乘问题
- 大数相乘问题--算法思想及Java实现解析(附详细注释)
- 大数相乘 C++实现
- ObjC 实现的大数相加,大数相乘和n的阶乘
- Python 使用reduce()函数实现,列表内的数相乘
- python基础--实现大数到任意进制的转换
- 大数相乘 C++实现
- Python两个列表里元素对应相乘,实现方法
- python实现大整数相乘---格子乘法
- 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)
- java中用ArrayList类实现正整数大数相加与相乘
- 海豚实习-实现两个大数相乘
- C++实现——两个大数相乘
- 用字符串实现大数相乘
- 剑指offer——大数相乘问题(BigInteger的大致实现思路)
- C++ 实现大数相乘