回文while循环而不是for循环

2024-05-16 00:33:59 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的程序检查回文数,lychrel和non-lychrel的数量。最初我使用了一个'break'和一个for循环,但是我应该使用while循环。在


我的while循环与for循环的工作方式不同,我不知道我做错了什么? --范围应该在num1和num2之间 另外,输出应该是提示的精确副本,所以它看起来是这样的。 谢谢!在


Tags: 程序for数量方式副本nonbreakwhile
1条回答
网友
1楼 · 发布于 2024-05-16 00:33:59

while循环:

while (nums>=num1 and nums<=num2 and flag):
#for nums in range(num1, num2+1):
    num_str = str(nums)
    if num_str == num_str[::-1]:
       pal += 1
    else:
        count = 0
        num_el = num_str
        while (count < 60):
            np_total = int(num_el) + int(num_el [::-1])
            count += 1
            nums_el = str(np_total)
            num_el = nums_el
            if num_el == nums_el [::-1]:
                nonlych += 1
                flag = False

        else:
            lychrel += 1
            print(nums, "looks like a lychrel number")
nums += 1

else: lychrel += 1 print(nums, "looks like a lychrel number")

每次while循环退出时执行。您的for循环中的break正在跳过它。在

第二个问题是当flag设置为False时,它将停止外部while循环,因此您找到的第一个非lychrel数字将是您测试的最后一个数字。在

这是我尽量少改变的尝试。您可以添加一个类似isLychrel的标志,而不是使用count变量来传递信息。在

^{pr2}$

相关问题 更多 >