Python如何计算自然数逐次减最大数位到零的操作步数
你可以把「计算当前数字最大数位」的逻辑封装为独立函数,再在外层嵌套迭代循环,每次更新数值、统计操作次数即可,完整实现代码如下:
# 定义函数:接收正整数,返回它的最大数位 def get_max_digit(n): max_d = 0 while n > 0: digit = n % 10 if digit > max_d: max_d = digit n = n // 10 return max_d num = int(input("请输入自然数:")) if num <= 0: print("输入不是自然数") else: count = 0 current = num # 外层循环:直到数值变为0才停止 while current > 0: # 获取当前数值的最大数位 max_d = get_max_digit(current) # 减去最大数位更新数值 current -= max_d # 操作次数累加 count += 1 print(f"总操作次数为:{count}")
代码说明
- 单独封装
get_max_digit函数复用计算最大数位的逻辑,避免代码冗余 - 新增
current变量存储迭代过程中的数值,不修改原始输入值 - 外层循环控制迭代流程:只要当前数值大于0,就重复执行「取最大数位→减数位→计数+1」的操作,直到数值变为0
代入示例输入24测试,会输出总操作次数为5,和示例要求一致。
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

