Giả sử chúng ta có một số n, chúng ta phải tìm số lớn nhất có thể nhận được bằng cách chèn 5 vào bất kỳ chỗ nào trong số đó.
Vì vậy, nếu đầu vào là n =834, thì đầu ra sẽ là 8534.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu n> 0 thì
-
s:=n dưới dạng chuỗi
-
k:=chuỗi trống
-
c:=Sai
-
đối với mỗi ký tự tôi trong s, thực hiện
-
nếu i <5 và c là Sai thì
-
k:=k nối "5" nối i
-
c:=Đúng
-
-
nếu không,
-
k:=k nối i
-
-
-
trả về k dưới dạng số nguyên
-
-
nếu không,
-
k:=chuỗi trống
-
s:=| n | dưới dạng chuỗi
-
c:=Sai
-
đối với mỗi ký tự tôi trong s, thực hiện
-
nếu i> 5 và c giống Sai thì
-
k:=k nối "5" nối i
-
c:=Đúng
-
-
nếu không,
-
k:=k nối i
-
-
-
nếu c sai thì
-
k:=k nối "5"
-
-
-
return (-k)
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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)) Đầu vào
834
Đầu ra
8534