Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

주어진 숫자에서 모든 0을 5로 바꾸는 프로그램을 파이썬으로 작성하십시오.

<시간/>

정수 N이 주어지면 작업은 숫자에 나타나는 모든 0을 '5'로 바꾸는 것입니다. 단, 앞에 '0'이 붙은 숫자는 그대로 유지되므로 '5'로 바꿀 수 없습니다. 예를 들어,

입력-1 -

N = 1007

출력 -

1557

설명 − 주어진 숫자에는 2개의 0이 있으며 '5'로 대체하면 1557로 출력됩니다.

입력-2 -

N = 00105

출력 -

155

설명 − 주어진 숫자가 선행 '0'으로 시작하므로 무시할 수 있으며 중간에 0을 '5'로 바꾼 후 출력은 155로 출력됩니다.

이 문제를 해결하기 위한 접근 방식

주어진 숫자의 모든 0을 '5'로 바꾸려면 숫자의 마지막 자릿수를 찾아 추출할 수 있습니다. 해당 숫자의 마지막 숫자가 '0'이면 값을 변경하고 '5'로 바꾸고 다른 숫자를 추출합니다. 그러나 주어진 숫자의 선행 '0'은 무시해야 합니다. 따라서 먼저 마지막 숫자를 추출한 다음 해당 숫자의 다른 숫자를 추출하면서 동일한 함수를 다시 호출합니다.

  • 숫자 N을 입력하세요.

  • 정수 함수인 convertToFive(int N)는 숫자를 입력으로 받아 모든 0을 '5'로 바꾸어 수정된 숫자를 반환합니다.

  • 숫자의 마지막 숫자가 '0'이면 값을 '5'로 바꿉니다.

  • '10'을 나누고 '10'을 곱하여 숫자의 다른 자릿수를 취하는 재귀 함수를 반환합니다.

  • 마지막 숫자를 추가하여 추출한 출력을 반환합니다.

예시

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))

출력

위의 코드를 실행하면 다음과 같이 출력이 생성됩니다.

14556

0이 두 개 있기 때문에 주어진 숫자에서 14006을 바꾸면 14556이 됩니다.