马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
条件1
[0, 0, 0, 8, 9, 9, 9, 9, 9, 9, 1]
[0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0]
[0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0]
[8, 9, 9, 9, 9, 9, 9, 1, 0, 0, 0]
条件2:
其中条件2是用条件1的NUMPY.SUM求来的
[8, 9, 18, 35, 36, 36, 36, 28, 27, 18, 1]
需要结果:无论用条件1 做 还是用条件2做 均可
主要涉及进位:
期待结果:91189990881
这是一个加法问题,需要将条件1和条件2中对应位置的数字相加,考虑进位。可以先将条件1和条件2中的数字都转化成字符串形式,然后从后往前逐位相加,考虑进位,最终得到结果字符串。具体实现如下:
- import numpy as np
- # 条件1
- a = np.array([
- [0, 0, 0, 8, 9, 9, 9, 9, 9, 9, 1],
- [0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0],
- [0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0],
- [8, 9, 9, 9, 9, 9, 9, 1, 0, 0, 0]
- ])
- # 条件2
- b = np.sum(a, axis=0)
- # 逐位相加,考虑进位
- result = ''
- carry = 0
- for i in range(len(b)-1, -1, -1):
- s = str(b[ i] + carry)
- if i == len(b) - 1:
- result = s + result
- else:
- result = s[-1] + result
- carry = int(s[:-1])
- if carry > 0:
- result = str(carry) + result
- print(result) # 输出 91189990881
复制代码
这里用到了numpy中的 sum 函数,以及字符串的一些操作。
|