前言
这个题比较简单,input()输入的默认是字符串类型,正好可以用于拆开相加,最后用map()来把类型是int的list转换成string的list。
map()是一个新知识点,这篇就总结一下map()的用法。
1. 题目
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。
-
输入格式:
输入第一行给出正整数 N N N。随后一行给出 N N N个正整数,数字间以空格分隔。题目保证所有数字小于 1 0 4 10^4 104。 -
输出格式:
首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。 -
输入样例:
8
123 899 51 998 27 33 36 12 -
输出样例:
4
3 6 9 26
2. map()方法
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
用法:
map(function, iterable, ...)
参数:
- function – 函数
- iterable – 一个或多个序列
3. 代码
n = input()
l = input().split()
res = []
for tem in l:
b = 0;
for j in tem:
b+=int(j)
if b not in res:
res.append(b)
res.sort()
print(len(res))
res = map(str,res)
print(" ".join(res))