Computer >> Máy Tính >  >> Lập trình >> Python

Viết một chương trình bằng Python để thay thế tất cả các số 0 bằng 5 trong một số nhất định

Với một Số nguyên N, nhiệm vụ là thay thế tất cả các số 0 xuất hiện trong số bằng ‘5’. Tuy nhiên, số có ‘0’ đứng đầu không thể được thay thế bằng ‘5’ vì nó không thay đổi. Ví dụ:

Đầu vào-1 -

N = 1007

Đầu ra -

1557

Giải thích - Số đã cho có 2 số không khi được thay thế bằng ‘5’ sẽ cho kết quả là 1557.

Đầu vào-2 -

N = 00105

Đầu ra -

155

Giải thích - Vì số đã cho bắt đầu bằng chữ ‘0’ đứng đầu nên có thể bị bỏ qua và kết quả sau khi thay số 0 ở giữa bằng ‘5’ thì kết quả đầu ra là 155.

Phương pháp tiếp cận để giải quyết vấn đề này

Để thay thế tất cả các chữ số 0 trong một số đã cho bằng '5', chúng ta có thể tìm và trích xuất chữ số cuối cùng của số đó. Nếu chữ số cuối cùng của số đó là ‘0’ thì thay đổi và thay thế giá trị bằng ‘5’ và trích ra một chữ số khác. Tuy nhiên, bất kỳ chữ ‘0 đứng đầu nào trong số đã cho phải bị bỏ qua. Vì vậy, trước tiên chúng ta sẽ trích xuất chữ số cuối cùng và sau đó gọi lại hàm tương tự trong khi trích xuất chữ số khác của số đó.

  • Nhập một số N.

  • Một hàm Integer convertToFive (int N) nhận một số làm đầu vào và trả về số đã sửa đổi bằng cách thay thế tất cả các số 0 bằng ‘5’.

  • Nếu chữ số cuối cùng của số là '0' thì hãy thay thế giá trị bằng '5'.

  • Trả về hàm đệ quy nhận một chữ số khác của số bằng cách chia "10" và nhân với "10".

  • Trả về đầu ra chiết xuất chữ số cuối cùng bằng cách thêm vào đó.

Ví dụ

def convertToFive(number):
   number += calculateAddedValue(number)
   return number
def calculateValue(number):
   result = 0
   placeValu = 1
   if (number == 0):
      result += (5 * placeValue)
   while (number > 0):
      if (number % 10 == 0):
         result += (5 * placeValue)
      number //= 10
      placeValue *= 10
   return result
print(covertToFive(14006))

Đầu ra

Chạy đoạn mã trên sẽ tạo ra kết quả là,

14556

có hai số 0 trong số đã cho, sau khi thay thế số 14006, nó sẽ thành 14556.