You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:24:05