1021
给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。
输入格式:
每个输入包含1个测试用例,即一个不超过1000位的正整数N。
输出格式:
对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。
输入样例:100311输出样例:
0:2 1:3 3:1
题目解答:
lst = list(input()) from collections import Counter cor = Counter(lst) for num in range(10): freq = cor[str(num)] if freq == 0: continue print("%d:%d"%(num,freq))
题目很简单,关键做到简洁、美观。鄙人用到Counter对象,是处理字典问题统计次数的好工具,跑的比别人的都快,
建议学习一个,提高自己的姿势水平。其常用方法有Counter.most_commom(n)、list(Counter)、set(Counter)、
dict(Counter)及Counter.keys()、Counter.items()等。
Counter对象的众多方法具体的可以查看其它大神的介绍。
1022
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103题目解答:
lst = input().split()
num = int(lst[0])+int(lst[1])
d = int(lst[2])
str_ans=""
while num:
num,b = divmod(num,d)
str_ans = str(b) + str_ans
if str_ans == "":
print("0")
else:
print(str_ans)
也是十分简单的题,一是d进制转换的方法,二是特殊情况0