gpt4 book ai didi

python - 如何检查数字是否为 1、14 或 144 的串联

转载 作者:行者123 更新时间:2023-12-03 18:27:52 25 4
gpt4 key购买 nike

我已经设法获取代码来检查它是否是 1、14 或 144 的串联,但这里的主要问题是当我打印像 144441 这样的数字时它返回“YES”,而它应该给出“不。”

只要在 2 个之间至少夹有 3 个四(即 14441、14444444444441、1444441),就会出现此问题

def magic_num(N):
magic = N

while magic in range(1,1000000001):
if (magic % 1000 == 144):
magic /= 1000
elif (magic % 100 == 14):
magic /= 100
elif (magic % 10 == 1):
magic /= 10
else:
return"NO"

return "YES"

N = int(input("Enter an integer between 1 and 10^9: "))
print(magic_num(N));

最佳答案

我认为对于你的情况,你只需要检查你的号码是否只包含 14,它以 1 开头> 并且您没有连续出现三个或更多 4:

def is_concatenation(n):
"""Returns True if n is a concatenation of 1, 14 and 144"""
n = str(n)
return set(n) <= {"1", "4"} and n.startswith("1") and "444" not in n

关于python - 如何检查数字是否为 1、14 或 144 的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62007516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com