শুভ সংখ্যা
একটি সুখী সংখ্যা হল এমন একটি সংখ্যা যা প্রতিটি অঙ্কের বর্গক্ষেত্রের যোগফল দ্বারা প্রতিস্থাপিত হলে অবশেষে 1 এ পৌঁছায়। যদিও এই প্রক্রিয়া চলাকালীন কোনো সংখ্যার পুনরাবৃত্তি ঘটলে, চক্রটি অসীমভাবে চলবে এবং এই ধরনের সংখ্যাগুলোকে অসুখী সংখ্যা বলা হয়।
উদাহরণস্বরূপ − 13 একটি শুভ সংখ্যা কারণ,
1^2 + 3^2 = 10 and, 1^2 + 0^2 = 1
অন্যদিকে, 36 একটি অসুখী সংখ্যা।
আমাদের একটি ফাংশন লিখতে হবে যা একটি সংখ্যাটি খুশি সংখ্যা কিনা তা নির্ধারণ করতে পুনরাবৃত্তি ব্যবহার করে৷
তো, চলুন এই ফাংশনটি লিখি। এই ফাংশনের মূল বিষয় হল যে সংখ্যাগুলি ইতিমধ্যে উপস্থিত হয়েছে সেগুলির একটি রেকর্ড আমাদের রাখতে হবে, যদি একই সংখ্যাটি অন্যভাবে উপস্থিত হয়, তবে বর্গাকার সংখ্যাগুলি 1 পর্যন্ত যোগ করলে, আমরা সত্যে ফিরে আসব৷
আমরা ইতিমধ্যে প্রদর্শিত সংখ্যার ট্র্যাক রাখতে একটি বস্তু ব্যবহার করব, আমরা সেটর ম্যাপও ব্যবহার করতে পারতাম, তবে একটি সাধারণ বস্তু আমাদের জন্যও এটি করবে৷
এটি করার জন্য কোড হবে −
উদাহরণ
const squareSumRecursively = (n, res = 0) => { if(n){ return squareSumRecursively(Math.floor(n/10), res+Math.pow((n%10),2)); }; return res; }; const isHappy = (num, map = {}) => { if(num !== 1){ if(map[num]){ return false; } map[num] = 1; return isHappy(squareSumRecursively(num), map); }; return true; } console.log(isHappy(36)); console.log(isHappy(13)); console.log(isHappy(36)); console.log(isHappy(23));
আউটপুট
কনসোলে আউটপুট হবে −
false true false true