Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาการเกิดขึ้นของตัวเลขจากช่วงที่กำหนดใน 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

  • ตอบ :=แก้ (k, d) * 10 + k + 1

  • ถ้า d เท่ากับ 0 แล้ว

    • ans :=ans − 1

  • m :=ชั้นของ (n / 10) * 10

  • ในขณะที่ m <=n ทำ

    • ans :=ans + จำนวนครั้งของการแสดงสตริงของ d ในการแสดงสตริงของ m

    • 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