Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में दशमलव को फैक्टोरियल में एन्कोड करना और वापस बदलना


समस्या

दशमलव संख्याओं को फैक्टोरियल के साथ कोड करना, संख्याओं को एक बेस सिस्टम में लिखने का एक तरीका है जो संख्याओं की घातों के बजाय फैक्टोरियल पर निर्भर करता है। इस प्रणाली में, अंतिम अंक हमेशा 0 होता है और बेस 0! में होता है। उससे पहले का अंक या तो 0 या 1 होता है और बेस 1! में होता है। उससे पहले का अंक 0, 1, या 2 होता है और बेस 2! में होता है, आदि। आम तौर पर, अंतिम से nth अंक हमेशा 0, 1, 2, ..., n होता है और बेस n! में होता है। हमें दो फ़ंक्शन चाहिए। पहला एक दशमलव संख्या प्राप्त करेगा और फैक्टोरियल प्रतिनिधित्व के साथ एक स्ट्रिंग लौटाएगा। दूसरा फैक्टोरियल प्रतिनिधित्व वाली एक स्ट्रिंग प्राप्त करेगा और दशमलव प्रतिनिधित्व उत्पन्न करेगा। उदाहरण के लिए − दशमलव संख्या 463 को "341010" के रूप में एन्कोड किया गया है, क्योंकि −

463 = 3×5! + 4×4! + 1×3! + 0×2! + 1×1! + 0×0!

उदाहरण

निम्नलिखिक कोड है −

const num = 463; const decimalToFact = (num = 1) => { const legend = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); let str = '0'; let i = 2; while(num){ str = legend[num%i] + str; num = Math.floor(num / i); i++; }; return str; }; const factToDecimal = (str = '') => { const legend = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); const l = str.length; return str .split('') .reduce((a,e,i) => Number(a) * (l - i) + legend.indexOf(e), 0); }; const fact = decimalToFact(num); const dec = factToDecimal(fact); console.log(fact); console.log(dec);

आउटपुट

कंसोल आउटपुट निम्नलिखिक है −

341010 463
  1. JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स

    const ES2015 (ES6) में पेश किया गया एक ब्लॉक-स्कोप्ड वेरिएबल डिक्लेरेशन है जो रीअसाइनमेंट को रोकता है। यह आधुनिक JavaScript में डिफ़ॉल्ट विकल्प होना चाहिए जब रीअसाइनमेंट की आवश्यकता न हो। उदाहरण { try { a = 44; // TypeError: Assignment to constant variable } catch (e

  1. JavaScript में Const vs Let JavaScript में Const vs Let

    Const और let को ES2015 में ब्लॉक-स्कोप्ड वेरिएबल घोषित करने के लिए पेश किया गया था। जबकि let का उपयोग करके घोषित वेरिएबल को पुनः असाइन किया जा सकता है, const का उपयोग करके घोषित वेरिएबल को पुनः असाइन नहीं किया जा सकता। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <me

  1. - JavaScript में सरणियों को मर्ज और सुधारना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की दो सरणियों, arr1 और arr2, को पहला और दूसरा तर्क के रूप में लेता है। हमारे फ़ंक्शन को इन दोनों सरणियों के तत्वों को एक नई सरणी में मर्ज करना चाहिए और यदि मर्ज करने से पहले या बाद में कोई डुप्लिकेट मौजूद हैं, तो हमें अतिरिक्त डुप्लिकेट को हटा द