Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm số lớn nhất bằng cách chèn 5 vào vị trí bất kỳ trong Python


Giả sử chúng ta có một số n, chúng ta phải tìm số lớn nhất có thể đạt được bằng cách chèn chữ số 5 vào bất kỳ vị trí 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 ta 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 rỗng

    • c := False

    • với mỗi ký tự i trong s, thực hiện

      • nếu i < 5 và c là False, thì k := k + "5" + i, c := True

      • ngược lại, k := k + i

    • trả về k dưới dạng số nguyên

  • ngược lại (n <= 0),

    • k := chuỗi rỗng

    • s := |n| dưới dạng chuỗi

    • c := False

    • với mỗi ký tự i trong s, thực hiện

      • nếu i > 5 và c là False, thì k := k + "5" + i, c := True

      • ngược lại, k := k + i

    • nếu c là false, thì k := k + "5"

    • trả về -k

Ví dụ

Hãy xem 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