নম্বর 1 থেকে শুরু করে বারবার 5 যোগ করা বা 3 দিয়ে গুণ করে অনন্ত সংখ্যক নতুন নম্বর তৈরি করা যায়। আমাদের একটি ফাংশন লিখতে হবে যা একটি নম্বর দেওয়া হলে, এমন যোগ এবং গুণ করার সিকোয়েন্স খুঁজে বের করার চেষ্টা করবে যা সেটি তৈরি করে। এবং সেরকম কোনো সিকোয়েন্স আছে কিনা সেটির উপর ভিত্তি করে বুলিয়ান রিটার্ন করবে।
উদাহরণস্বরূপ,
নম্বর 13 প্রথম 3 দিয়ে গুণ করে এবং তারপর দুবার 5 যোগ করে পাওয়া যায়, তাই ফাংশনটি 13-এর জন্য true রিটার্ন করবে। অন্যদিকে, নম্বর 15 যেকোনোভাবে পাওয়া যায় না, তাই 15-এর জন্য false রিটার্ন করবে।
অ্যাপ্রোচ
আমরা একটি রিকার্সিভ অ্যাপ্রোচ ব্যবহার করব, যেখানে আমরা বারবার সমাধান جهةে নিয়ে যাওয়া সব সম্ভাবনা চেষ্টা করব। এই অ্যাপ্রোচের কোড নিচে দেওয়া হলো:
উদাহরণ
const sequenceExists = (num, curr = 1) => { if(curr > num){ return false; }; if(curr === num){ return true; }; return sequenceExists(num, curr+5) || sequenceExists(num, curr*3); }; console.log(sequenceExists(18)); console.log(sequenceExists(15)); console.log(sequenceExists(32)); console.log(sequenceExists(167)); console.log(sequenceExists(17)); console.log(sequenceExists(1119));আউটপুট
কনসোলে আউটপুট হবে:
true false true true false true