भ्रमित करने वाली संख्याएं:
किसी सरणी में एक संख्या भ्रमित करने वाली होती है यदि यह दूसरी संख्या बन जाती है जो कि संख्या को 180 डिग्री लंबवत और क्षैतिज रूप से घुमाने के बाद भी सरणी में मौजूद होती है। उदाहरण के लिए, यदि हम 6 को 180 डिग्री लंबवत और क्षैतिज रूप से घुमाते हैं तो यह 9 हो जाता है और इसके विपरीत।
हमें यह ध्यान रखना होगा कि केवल 0, 1, 6, 8, 9 के घुमाव से ही वैध संख्या प्राप्त होती है।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले और एकमात्र तर्क के रूप में एक प्राकृतिक संख्या, संख्या लेता है। फ़ंक्शन को पहले संख्या सहित सभी प्राकृतिक संख्याओं की एक सरणी का निर्माण करना चाहिए, जिसमें संख्या भी शामिल है।
उदाहरण के लिए, संख्या =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