1016 部分A+B (15 分)
题意描述:
正整数 A 的“DA (为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA 。例如:给定 A=3862767,DA =6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。现给定 A、DA 、B、DB ,请编写程序计算 PA +PB 。
输入格式:
输入在一行中依次给出 A、DA 、B、DB ,中间以空格分隔,其中 0<A,B<10^10
。
输出格式:
在一行中输出 PA +PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
解题思路:
根据题意,我们只需要从两个整数中抽取出对应的数字相加即可。对于构造数字我们可以使用 number = number * 10 + k
的循环来做。
代码:
def main():
data = [int(x) for x in input().split()]
# 接收输入的字符串并存储为 整数列表
temp = [0, 0, 0, 0]
# 用于存储结果,其实只用了temp[0], temp[2]
for x in range(0, len(data), 2):
# 对于两个数字的每一个
for y in str(data[x]):
# 对于每个数字的每一位
if y == str(data[x + 1]):
# 如果找到了对应的数字
temp[x] = temp[x] * 10 + data[x + 1]
# 拼接我们需要的数字
print(sum(temp))
# sum函数可以直接对列表求和,然后就可以输出结果了。
if __name__ == '__main__':
main()
易错点:
- 有吗 ? (逃…)
总结:
- Python 中的字符串是可迭代的,就是说可以用一个循环去遍历整个字符串。所以我们不必再单独将每个数字的各个位提取出来。