สมมติว่าเรามีจำนวนเต็มที่ไม่ติดลบเรียกว่า num เราต้องตรวจสอบว่าเป็นพาลินโดรมหรือไม่ เราต้องแก้โดยไม่ต้องใช้สตริง
ดังนั้นหากอินพุตเท่ากับ num =25352 เอาต์พุตจะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ก :=0
-
ค :=นัม
-
ในขณะที่ num> 0, ทำ
-
r :=num mod 10
-
num :=ชั้นของ num / 10
-
a :=(10 * a) + r
-
-
ถ้า a เหมือนกับ c แล้ว
-
คืนค่า True
-
-
มิฉะนั้นจะคืนค่าเป็นเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(num):
a = 0
c = num
while num > 0:
r = num % 10
num = num // 10
a = (10 * a) + r
if a == c:
return True
else:
return False
num = 25352
print(solve(num)) อินพุต
25352
ผลลัพธ์
True