দুটি ধনাত্মক পূর্ণসংখ্যা n এবং d (0-9 এর মধ্যে একটি অঙ্ক) দেওয়া আছে। 1 থেকে n পর্যন্ত সংখ্যাগুলোতে d অঙ্কটি কতবার আসে তা বের করতে হবে।
উদাহরণ: n = 45, d = 5 হলে আউটপুট ৫, কারণ ৫, ১৫, ২৫, ৩৫, ৪৫ এ ৫ অঙ্কটি আছে।
সমাধানের ধাপসমূহ
- রিকার্শিভ ফাংশন solve(n, d) সংজ্ঞায়িত করুন
- যদি n < 0 হয় তবে 0 ফেরত দিন
- k := n//10 - 1
- ans := solve(k, d)*10 + k + 1
- যদি d == 0 হয় তবে ans := ans - 1
- m := n//10 * 10 থেকে n পর্যন্ত লুপে অঙ্ক গণনা করুন
- ans ফেরত দিন
উদাহরণ কোড
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