为什么 Code/Logic 对于不同的范围有不同的作用?

Why the Code/Logic is working differently for different ranges?

我写了欧拉计划第4题的代码-- 它适用于范围 (10,100)-- 案例1--

for i in range(10,100):
    for j in range(10,100):
        a = i*j
        b = str(a)
        d = str(a)[::-1]
        if b == d:
            c = b
            p1 = i
            p2 = j
print(f"{c} is palindrome ")

但对于范围 (100,1000) 案例2---

for i in range(100,1000):
    for j in range(100,1000):       
        a = i*j
        b = str(a)
        d = str(a)[::-1]
        if b == d:
            c = b
            p1 = i
            p2 = j    
print(f"{c} is palindrome ")

输出错误 为什么?? 为什么代码的工作方式不同? 对于 case1,它给出了正确的输出。但是随着范围的变化,它提供了错误的输出。

按照您的逻辑,如果发现任何回文,它会自动分配给 c,而不检查它是否大于 c。 例如,当 i=993j =913 时,则 c= 906609,但当 i =995j = 583 时,此值将替换为 580085。所以你得不到预期的输出。

首先,试试,我在下面提供了示例代码。没看懂才看

c=0
for i in range(100,1000):
    for j in range(100,1000):       
        a = i*j
        b = str(a)
        d = str(a)[::-1]
        if b == d:

            if a>c:
                c=a

            p1 = i
            p2 = j    
print(f"{c} is palindrome ")