'''
讨论高精度数据与一个长整数精度范围内的数的乘法
算法设计:
1、字符型数组存储从键盘输入的高精度数据,这样无需对高精度数据进行分段输入
2、乘法是按由低位到高位运算的,且常常需要向高位进位,所以高精度数据应该由低位到高位存储在数组a中,每个元素存储一位数字
3、每一位仅运算一次,所以乘法的结果也可以存储在数组a中
4、要完成高精度数据从字符型数组存储方式到数值数组存储方式的转换,即数字字符-48就转换为数值数字,不过字符型数组是由高位到低位存储,而数值数组是由低位到高位存储,用两个下标控制就可以方便的完成转换操作
5、一个高精度数据与一个自然数的乘法的运算过程,用一重循环来实现,循环变量i代表当前参与运算的数组下标,d存储进位
'''
def main():
result = ''
a =[]
for i in range(0,256):
a.append(0)
s1 = input("请输入高精度数据:")
c = int(input("请输入一个整数:"))
n = len(s1)
d = 0
i = 0
j = n - 1
while i < n:
b =(ord(s1[j])-48) * c + d
a[i] = b % 10
d = b // 10
i +=1
j -=1
while d !=0:
a[len(s1)] = d % 10
d = d //10
n +=1
for i in range(n-1,-1,-1):
result += str(i)
print(result.lstrip('0'))
if __name__ == '__main__':
main()
运行结果:
请输入高精度数据:1223445
请输入一个整数:32435
109876543210
高精度数据与长整型数据的乘法结果存储问题(python)实现
最新推荐文章于 2021-11-17 12:26:20 发布