python给定一个n位正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数。例如原数34625803,保留4位,最大数为6803。算法是:先确定最高位的数字,在第1位至最后3位数字前的34625中找到最大的数6,从而确定最高位是6,再确定次高位的数字,从6后面的数开始到最后2位数字前的258中找到最大数8,确定次高位是8,依次找下去得到最大新数。他设计了一个Python程序来进行验证,程序运行时输入一个n位正整数和需保留的位数,程序运行后输出保留的最大新数。
时间: 2023-05-29 12:01:12 浏览: 130
python 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字 (示例)
5星 · 资源好评率100%
num, k = input().split()
n = len(num)
k = int(k)
max_num = '' # 记录最大新数
# 循环找最大数
for i in range(n-k+1):
max_index = i # 记录最大数的索引
for j in range(i+1, i+k): # 在保留位范围内找最大值
if num[j] > num[max_index]:
max_index = j
max_num += num[max_index] # 添加最大数到最大新数中
print(max_num)
阅读全文