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

파이썬에서 주어진 범위에서 숫자의 발생을 찾는 프로그램


두 개의 양의 정수 n과 d가 제공되었다고 가정합니다. 여기서 d는 0에서 9 사이의 숫자입니다. 숫자 d가 1 사이의 정수 내에 나타나는 횟수를 결정해야 합니다. 그리고 n.

따라서 입력이 n =45, d =5와 같으면 출력은 5가 됩니다.

숫자 5는 [5, 15, 25, 35, 45]입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 함수 solve()를 정의합니다. 이것은 n과 d를 입력으로 사용합니다.

  • n <0이면

    • 0 반환

  • k :=(n /10) − 1의 바닥

  • ans :=풀기(k, d) * 10 + k + 1

  • d가 0과 같으면

    • ans :=ans − 1

  • m :=(n / 10) * 10의 바닥

  • 동안 m <=n, 수행

    • ans :=ans + m의 stringrepresentation에서 d의 문자열 표현의 발생 횟수

    • m :=m + 1

  • 반환

  • 주 함수에서 이제 함수를 호출하십시오 -

  • 값 :=해결(n,d)

  • 인쇄(값)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, n, d):
      if n < 0:
         return 0
      k = n // 10 − 1
      ans = self.solve(k, d) * 10 + k + 1
      if d == 0:
         ans −= 1
      m = n // 10 * 10
      while m <= n:
         ans += str(m).count(str(d))
         m += 1
      return ans
ob = Solution()
print(ob.solve(45,5))

입력

45, 5

출력

5