এখানে আমরা দেখব কিভাবে একটি সংখ্যা শনাক্ত করা যায় n একটি শুভ সংখ্যা কি না। সুতরাং সুখী সংখ্যা হল একটি সংখ্যা, যেখানে যেকোনো ধনাত্মক পূর্ণসংখ্যা দিয়ে শুরু করে সংখ্যাটিকে তার অঙ্কের বর্গের যোগফল দ্বারা প্রতিস্থাপন করে, এই প্রক্রিয়াটি পুনরাবৃত্তি করা হবে যতক্ষণ না এটি 1 হয়ে যায়, অন্যথায় এটি একটি চক্রের মধ্যে অবিরামভাবে লুপ করবে। সেই সংখ্যাগুলি, যখন 1 পাওয়া যায়, তখন তারা খুশি সংখ্যা হবে৷
৷ধরুন সংখ্যাটি 19, আউটপুটটি সত্য হবে কারণ সংখ্যাটি খুশি সংখ্যা। আমরা 19 থেকে দেখতে পাচ্ছি, আমরা পাব
1 2 + 9 2 =82
8 2 + 2 2 =৬৮
6 2 + 8 2 =100
1 2 + 0 2 + 0 2 =1
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- এখানে আমরা ডায়নামিক প্রোগ্রামিং পদ্ধতি ব্যবহার করব, এবং পুনরাবৃত্তি ব্যবহার করে এটি সমাধান করব
- বেস কেস হল, যখন n =1, তারপর true রিটার্ন করুন
- যখন n ইতিমধ্যেই পরিদর্শন করা হয়, মিথ্যা ফেরত দিন
- n কে পরিদর্শন করা হয়েছে হিসাবে চিহ্নিত করুন
- n :=n স্ট্রিং হিসাবে, l :=n-এ সমস্ত সংখ্যার তালিকা
- temp :=সমস্ত অঙ্কের বর্গাকার যোগফল
- পরামিটার টেম্প এবং ভিজিট করা তালিকার সাথে পুনরাবৃত্তভাবে রিটার্ন ফাংশন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
class Solution(object): def isHappy(self, n): """ :type n: int :rtype: bool """ return self.solve(n,{}) def solve(self,n,visited): if n == 1: return True if n in visited: return False visited[n]= 1 n = str(n) l = list(n) l = list(map(int,l)) temp = 0 for i in l: temp += (i**2) return self.solve(temp,visited) ob1 = Solution() op = ob1.isHappy(19) print("Is Happy:",op)
ইনপুট
19
আউটপুট
Is Happy: True