สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนสูงสุดที่เราหาได้โดยการใส่ 5 ตรงไหนก็ได้ในตัวเลข
ดังนั้น หากอินพุตเท่ากับ n =834 เอาต์พุตจะเป็น 8534
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ถ้า n> 0 แล้ว
-
s :=n เป็นสตริง
-
k :=สตริงว่าง
-
ค :=ผิด
-
สำหรับแต่ละอักขระ i ใน s ทำ
-
ถ้า i <5 และ c เป็นเท็จ
-
k :=k เชื่อม "5" ต่อกัน i
-
ค :=จริง
-
-
มิฉะนั้น
-
k :=k concatenate i
-
-
-
คืนค่า k เป็นจำนวนเต็ม
-
-
มิฉะนั้น
-
k :=สตริงว่าง
-
s :=|n| เป็นสตริง
-
ค :=ผิด
-
สำหรับแต่ละอักขระ i ใน s ทำ
-
ถ้า i> 5 และ c เหมือนกับ False แล้ว
-
k :=k เชื่อม "5" ต่อกัน i
-
ค :=จริง
-
-
มิฉะนั้น
-
k :=k concatenate i
-
-
-
ถ้า c เป็นเท็จ แล้ว
-
k :=k เชื่อม "5"
-
-
-
กลับ (-k)
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(n): if n > 0: s = str(n) k = "" c = False for i in s: if int(i) < 5 and c == False: k += "5" + i c = True else: k += i return int(k) else: k = "" s = str(abs(n)) c = False for i in s: if int(i) > 5 and c == False: k += "5" + i c = True else: k += i if not c: k += "5" return int("-" + k) n = 834 print(solve(n))
อินพุต
834
ผลลัพธ์
8534