কনফিউজিং নাম্বার:
একটি অ্যারেতে একটি সংখ্যা কনফিউজিং যদি সেটিকে ১৮০ ডিগ্রি উল্টিয়ে দেওয়ায় (ভার্টিক্যালি ও হরিজন্টালি) একটি অন্য সংখ্যা বने যা ওই অ্যারেতেও উপস্থিত থাকে। যেমন, ৬ কে ১৮০ ডিগ্রি ঘুরালে ৯ হয় এবং ৯ কে ঘুরালে ৬।
মনে রাখতে হবে শুধু ০, ১, ৬, ৮, ৯ এই ডিজিটগুলোই ঘুরালে বৈধ সংখ্যা তৈরি করে।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি প্রাকৃতিক সংখ্যা num প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে। ফাংশনটি প্রথমে ১ থেকে num পর্যন্ত সব প্রাকৃতিক সংখ্যার একটি অ্যারে তৈরি করবে।
উদাহরণস্বরূপ, num = 5 হলে অ্যারে হবে: [1, 2, 3, 4, 5]
তারপর ফাংশনটি অ্যারেতে কতগুলো কনফিউজিং নাম্বার আছে সেটি গণনা করে সেই কাউন্ট রিটার্ন করবে।
উদাহরণ:
ইনপুট হলে:
const num = 10;
আউটপুট হবে:
const output = 5;
কারণ অ্যারে হবে: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] এবং কনফিউজিং নাম্বারগুলো হচ্ছে: 1, 6, 8, 9, 10
উদাহরণ
কোডটি নিচের মতো:
const num = 10; const countConfusing = (num = 1) => { let count = 0; const valid = '01689'; const rotateMap = {'0': '0', '1': '1', '6': '9', '8': '8', '9': '6'}; const prepareRotation = num => { let res = ''; const numArr = String(num).split(''); if(numArr.some(el => !valid.includes(el))){ return false; }; numArr.map(el => { res = rotateMap[el] + res; }); return +res; }; for(let i = 1; i <= num; i++){ const rotated = prepareRotation(i); if(rotated && rotated > 0 && rotated <= num){ count++; }; }; return count; }; console.log(countConfusing(num)); আউটপুট
কনসোলে আউটপুট:
5