ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের পরীক্ষা করতে হবে যে n-এর প্রতিটি অঙ্কের উপস্থিতি ডিজিটের থেকে কম বা সমান।
সুতরাং, যদি ইনপুটটি n =5162569 এর মতো হয়, তাহলে আউটপুটটি True হবে কারণ সংখ্যা এবং ফ্রিকোয়েন্সিগুলি (5, 2), (1, 1), (6, 2) এবং (9, 1), সমস্তটির জন্য ফ্রিকোয়েন্সি হয় ছোট বা অঙ্ক মানের সমান।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- আমি 0 থেকে 9 রেঞ্জের জন্য, কর
- temp :=n, cnt :=0
- যখন তাপমাত্রা শূন্য নয়, তবে করুন
- যদি temp mod 10 i এর মত হয়, তাহলে
- cnt :=cnt + 1
- যদি cnt> i, তারপর
- মিথ্যে ফেরত দিন
- temp :=(temp / 10) এর ভাগফল
- যদি temp mod 10 i এর মত হয়, তাহলে
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(n): for i in range(10): temp = n cnt = 0 while temp: if temp % 10 == i: cnt += 1 if cnt > i: return False temp //= 10 return True s = 5162569 print(solve(s))
ইনপুট
5162569
আউটপুট
True