สมมติว่าเรามีตัวเลข 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