python给定一个n位正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数
时间: 2023-05-29 07:01:19 浏览: 219
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
思路:
1.将给定的正整数转换成字符串形式。
2.按照保留位数从左到右遍历字符串,在每个位置上选择留下的数字:
如果当前位置的数字比右侧数字小,则保留右侧数字,否则保留当前数字。
3.将选择的数字按原次序组成一个新的字符串,再将其转换成整数返回。
实现代码如下:
def get_new_number(n, digits):
s = str(n)
l = len(s)
new_s = ""
for i in range(l):
keep = True
for j in range(i+1, l):
if j-i > digits:
break
if s[j] > s[i]:
keep = False
break
if keep:
new_s += s[i]
return int(new_s)
# 测试
print(get_new_number(123456789, 3)) # 789
print(get_new_number(987654321, 5)) # 9876
print(get_new_number(123456789, 7)) # 1234567
阅读全文