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