मान लीजिए कि हमें दो धनात्मक पूर्णांक n और d प्रदान किए गए हैं, जहां d 0 से 9 के बीच का एक अंक है। हमें यह निर्धारित करना होगा कि 1 के बीच की पूर्णांक संख्याओं में d कितनी बार आता है। और n.
इसलिए, यदि इनपुट n =45, d =5 जैसा है, तो आउटपुट 5 होगा।
इन नंबरों का अंक 5 होता है:[5, 15, 25, 35, 45]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन को हल करें () को परिभाषित करें। यह इनपुट के रूप में n और d लेगा।
-
अगर एन <0, तो
-
वापसी 0
-
-
k :=(n /10) की मंजिल - 1
-
उत्तर:=हल करें (के, डी) * 10 + के + 1
-
यदि d, 0 के समान है, तो
-
उत्तर :=उत्तर - 1
-
-
मी :=(n / 10) * 10
. की मंजिल -
जबकि एम <=एन, करो
-
उत्तर:=उत्तर + एम के स्ट्रिंग प्रतिनिधित्व में डी के स्ट्रिंग प्रतिनिधित्व की घटनाओं की गिनती।
-
एम:=एम + 1
-
-
वापसी उत्तर
-
मुख्य फ़ंक्शन से, अब फ़ंक्शन को कॉल करें -
-
मान:=हल करें (एन, डी)
-
प्रिंट (मान)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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