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

排查判断自然数是否由相同数字组成的Python代码错误

问题分析与修正

你的代码存在几个逻辑错误,导致无法正确判断数字是否由相同数字组成:

  • 基准值初始化错误:你把a初始设为0,当输入包含0的数字(比如10)时,第一个取出的0会和a相等,将same设为True,后续取出的1和a不等,但same不会被改回False,最终错误输出YES。
  • 状态逻辑颠倒:你默认same为False,只要有一个数字和a相等就设为True,但如果后续出现不同数字,same不会重置为False,比如输入112时,前两个1相等会把same设为True,第三个2不同却不会改变状态,导致误判。
  • 单个数字处理错误:当输入单个数字(比如5)时,循环不会执行,same保持False,错误输出NO,但单个数字显然满足条件。

修正后的代码(循环实现)

num = int(input())
# 单个自然数直接判定为符合条件
if num < 10:
    print("YES")
else:
    # 提取第一个数字作为基准
    first_digit = num
    while first_digit >= 10:
        first_digit = first_digit // 10
    same = True
    temp = num
    while temp != 0:
        last_digit = temp % 10
        if last_digit != first_digit:
            same = False
            break  # 发现不同数字,提前终止循环
        temp = temp // 10
    print("YES" if same else "NO")

更简洁的字符串实现

利用字符串的特性可以大幅简化代码:

num_str = input().strip()
# 检查所有字符是否与第一个字符相同
all_same = all(char == num_str[0] for char in num_str)
print("YES" if all_same else "NO")

内容的提问来源于stack exchange,提问作者Notice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:39:59