任务:给出一个自然数。编写一个程序来确定给定的数字是否由相同的数字组成。
我的解决方案:
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')
你的起点就错了。为了使数字仅由相同的数字组成,所有数字都必须相等。这意味着该提案将有一位数的错误。因此,您应该从
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')
在这种情况下,我会尝试每次将 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 脚本相当陌生,所以这可能完全不正确,但这是我根据过去的经验做出的猜测。