问题描述:
解题思路:
#仅是本人自己的思路、
知识点:
a.列表,字符串的遍历
b.sorted排序,lambda函数
c.zip,sum函数
运用遍历将1到n的数放在列表m1里进行存储,数据类型为字符串(因为等下要进行位数求和)
后将每个数进行遍历出来进行分析,求和。还是用列表进行存储,将求和的列表m1和m2进行打包转换为字典,后利用sord函数排序,在加入到列表,根据根据索引与所要的值的规则输出。
n=int(input())
n1= int(input())
m1=[]
for i in range(1,n+1):#先将数遍历到m1中进行存储
m1.append(str(i)) #以字符串的方式添加
m2=[]
for j in m1: #将m1分步遍历
m3 = [] #用于存储
for j1 in j: #遍历每个值
m3.append(int(j1))
m2.append(sum(m3)) #sum:列表每个数相加
m4=dict(zip(m1,m2)) #让数与拆开的和进行对应 zip:打包
u=[]
for k in sorted(m4.items(),key=lambda x:int(x[1]),reverse=False): #按元组的形式进行排序
k1=list(k) #转换成列表
u.append(k1[0]) #元组对添加到列表u,方便后面遍历
u.append(k1[1])
if n1==1: #根据索引与所要的值的规则输出
print(u[0])
else:
n2=2*(n1-1)
print(u[n2])