কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে রিকার্সিভ প্রোডাক্ট অফ সামড ডিজিট


আমাদের একটি ফাংশন তৈরি করতে হবে যা যেকোনো সংখ্যক আর্গুমেন্ট (নাম্বার লিটারেল) নিবে, সেগুলো যোগ করবে, এবং যখন উত্তর শুধু ১ ডিজিটের হবে তখন ডিজিটগুলোর গুণফল রিটার্ন করবে।

উদাহরণস্বরূপ -

যদি আর্গুমেন্টগুলো হয় -

16, 34, 42

প্রথমে আমাদের সেগুলো যোগ করতে হবে -

16+34+42 = 92

তারপর ডিজিটগুলো গুণ করে ১ ডিজিট পাওয়া পর্যন্ত চলাতে হবে এইরকম -

9*2 = 18 1*8 = 8

যখন এক ডিজিটের নাম্বার পাওয়া যাবে, তখন সেটি ফাংশন থেকে রিটার্ন করতে হবে।

আমরা এটিকে দুটি ফাংশনে ভাগ করব -

  • একটি ফাংশন একটি নাম্বার নিবে এবং এর ডিজিটগুলোর গুণফল রিটার্ন করবে, এখানে রিকার্সন ব্যবহার করব, এটিকে নাম দি product()।

  • দ্বিতীয় ফাংশন রিকার্সিভলি এই product() ফাংশন কল করবে এবং চেক করবে প্রোডাক্ট ১ ডিজিট হয় কিনা, হলে রিটার্ন করবে না হলে চালিয়ে যাবে।

পুরো ফাংশনালিটির কোড হবে -

উদাহরণ

const recursiveMuliSum = (...numbers) => {    const add = (a) => a.length === 1 ? a[0] : a.reduce((acc, val) => acc+val);    const produce = (n, p = 1) => {       if(n){          return produce(Math.floor(n/10), p*(n%10));       };       return p;    };    const res = produce(add(numbers));    if(res > 9){       return recursiveMuliSum(res);    }    return res; }; console.log(recursiveMuliSum(16, 28)); console.log(recursiveMuliSum(16, 28, 44, 76, 11)); console.log(recursiveMuliSum(1, 2, 4, 6, 8));

আউটপুট

কনসোলে আউটপুট হবে -

6 5 2

  1. জাভাস্ক্রিপ্টে সংখ্যার অঙ্কগুলো আলাদা করা

  2. জাভাস্ক্রিপ্টে নম্বরের ডিজিটের গুণফল ও যোগফলের পার্থক্য

  3. জাভাস্ক্রিপ্টে সংখ্যার n সংখ্যক liên tục অঙ্কের সর্বোচ্চ গুণফল বের করা

  4. জাভাস্ক্রিপ্টে সংখ্যার অঙ্কগুলোর যোগফল ও গুণফলের পার্থক্য বের করা