gpt4 book ai didi

python - 交替倒数两个数字

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:23 24 4
gpt4 key购买 nike

我正在学习 python,我正在做 these exercises , 具体来说 this one在回文产品上。

我有两个数字,我想以交替的方式减少 1:

999, 999
998, 999
998, 998
997, 998
997, 997
...

我已经用 4 个 if 语句解决了它,但我认为这有点草率。有没有更好的办法?下面是代码:

palN1 = 999
palN2 = 999


def palin(palN1, palN2):
pal = palN1 * palN2
while str(pal)[::-1] != str(pal):
if palN1%2 == 0 and palN2%2 == 0:
palN1 += -1
pal = palN1 * palN2
elif palN1%2 != 0 and palN2%2 == 0:
palN2 += -1
pal = palN1 * palN2
elif palN1%2 != 0 and palN2%2 != 0:
palN1 += -1
pal = palN1 * palN2
elif palN1%2 == 0 and palN2%2 != 0:
palN2 += -1
pal = palN1 * palN2
print [palN1, palN2]
print str(pal)

if __name__=="__main__":
palin(palN1, palN2)

顺便说一句,我得到的练习结果是 [836,836],它的产品是 698896。这是我的第一篇文章,如果我做错了什么,请见谅。

最佳答案

您可以使用 itertools.cycle :

def solve(*args):
args = list(args)
le = len(args)
c = cycle(range(le))
print ("{} "*le).format(*args)
for _ in xrange( le*args[0] ):
i = next(c)
args[i] -= 1;
print ("{} "*le).format(*args)
...
>>> solve(999,999)
999 999
998 999
998 998
997 998
997 997
996 997
...
...
>>> solve(999,999,999)
999 999 999
998 999 999
998 998 999
998 998 998
997 998 998
997 997 998
...
...

关于python - 交替倒数两个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070982/

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