赞
踩
n = int(input(''))
m = int(input('')) # 输入n,m
arr = [] # 存放已经排列好的数组
for i in range(1, n + 1): # 生成1~n的数字
sum_digital = sum(list(map(int, list(str(i))))) # 将数字i由字符串转换成列表,再进行数位求和
if len(arr) != 0:
for index in range(0, len(arr)): # 遍历已经排好序的列表
if sum_digital <= sum(list(map(int, list(str(arr[index]))))) or index == len(arr) - 1: # 将当前的数字的数位和依次和已经排列好的数组的数位和进行比较
arr.insert(index + 1, i) # 如果当前的数字的数位和是最大的,那么for index in range(0, len(arr)) 就会遍历到最后
break # 也即:index == len(arr)-1.那么就将其插入到已经排列好的数组末尾
else: # 如果这个数的数位和小于之前的数,那么就插入比他小的那个数后面,也就是index+1
arr.append(i) # 在arr里面插入第一个数据
print(arr[m-1]) # 最后再打印要的答案,这里注意要减1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。