理论上非常简单的任务,但我仍然不明白我做错了什么

问题描述 投票:0回答:2

任务:给出一个自然数。编写一个程序来确定给定的数字是否由相同的数字组成。

我的解决方案:

lang - py
num = int(input())
same = False
a = 0

while num != 0:
    last_digit = num % 10
    if last_digit == a:
        same = True
    else:
        a += last_digit
    num = num // 10

if same == True:
    print('YES')
else:
    print('NO')
python python-3.x python-2.7 task
2个回答
0
投票

你的起点就错了。为了使数字仅由相同的数字组成,所有数字都必须相等。这意味着该提案将有一位数的错误。因此,您应该从

same = True
开始,在循环中将其设置为
False
,如果一位数字不同,则立即退出循环。并且您应该在循环之前正确初始化
a
有效值,然后永远不要更改它: num = int(input()) same = True # initialize same to True a = num % 10 # and a to the last digit while num != 0: last_digit = num % 10 if last_digit != a: same = False break num = num // 10 if same == True: print('YES') else: print('NO')



0
投票

在这种情况下,我会尝试每次将 last_digit 与 num // 10 进行比较。

last_digit = num % 10 same = "YES" while num != 0: num = num // 10 if num != last_digit: same = "NO" print(same)

我对 Python 脚本相当陌生,所以这可能完全不正确,但这是我根据过去的经验做出的猜测。

© www.soinside.com 2019 - 2024. All rights reserved.