Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ अन्य की शक्तियों में एक संख्या का प्रतिनिधित्व

किसी संख्या को दूसरी संख्या के घात में निरूपित करने की समस्या की विवेचना कीजिए। हमें दो नंबर दिए गए हैं, x और y। हमें यह बताने की जरूरत है कि क्या y को x की घात में दर्शाया जा सकता है, जहां x की प्रत्येक घात का एक बार उपयोग किया जा सकता है, उदाहरण के लिए

Input: x = 4, y = 11
Output: true
Explanation: 4^2 - 4^1 - 4^0 = 11 Hence y can be represented in the power of x.

Input: x = 2, y = 19
Output: true
Explanation: 2^4 + 2^1 + 2^0 =19 Hence y can be represented in the power of x.

Input: x = 3, y = 14
Output: false
Explanation: 14 can be represented as 3^2 + 3^1 + 3^0 + 3^0 but we cannot use one term of power of x twice.

समाधान खोजने के लिए दृष्टिकोण

19 को 2 की घात के पदों में कैसे निरूपित किया जाता है, इस उदाहरण की जांच करके हम एक समीकरण बना सकते हैं -

c0(x^0) + c1(x^1) + c2(x^2) + c3(x^3) + … = y ….(1),

जहां c0, c1, c2 -1, 0, +1 हो सकता है, यह दर्शाने के लिए कि क्या (-1) पद घटाया जाना है, (+1) पद जोड़ा जाना है, (0) पद शामिल नहीं किया जाना है -

c1(x^1) + c2(x^2) + c3(x^3) + … = y - c0,

x को सामान्य मानकर,

c1(x^0) + c2(x^1) + c3(x^2) + … = (y - c0)/x ….(2),

eq (1) और (2) से हम फिर से संख्या का प्रतिनिधित्व कर सकते हैं और अस्तित्व के समाधान के लिए (y - Ci) x से विभाज्य होना चाहिए और Ci में केवल -1, 0 और +1 हो सकते हैं।

तो अंत में हमें y>0 तक जांचना होगा कि क्या [(y-1)% x ==0] या [(y)% x ==0] या [(y+1)% x ==0] या क्या a समाधान मौजूद नहीं है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int main(){
   int x = 2, y = 19;
   // checking y divisibility till y>0
   while (y>0) {
      // If y-1 is divisible by x.
      if ((y - 1) % x == 0)
         y = (y - 1) / x;
        // If y is divisible by x.
      else if (y % x == 0)
         y = y / x;
         // If y+1 is divisible by x.
      else if ((y + 1) % x == 0)
         y = (y + 1) / x;
         // If no condition satisfies means
         // y cannot be represented in terms of power of x.
      else
         break;
   }
   if(y==0)
      cout<<"y can be represented in terms of the power of x.";
   else
      cout<<"y cannot be represented in terms of the power of x.";
   return 0;
}

आउटपुट

y can be represented in terms of the power of x.

निष्कर्ष

इस ट्यूटोरियल में, हमने चर्चा की कि कैसे जांचा जाए कि किसी संख्या का प्रतिनिधित्व किसी अन्य संख्या की शक्ति के संदर्भ में संभव है या नहीं। हमने इस समस्या को हल करने के लिए y के साथ वर्तमान, पूर्ववर्ती और बाद की संख्या विभाज्यता की जाँच करके एक सरल दृष्टिकोण पर चर्चा की।

हमने इस समस्या के लिए C++ प्रोग्राम पर भी चर्चा की जिसे हम प्रोग्रामिंग भाषाओं जैसे C, Java, Python, आदि के साथ कर सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगेगा।


  1. C++ में मितव्ययी संख्या

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है। हमारा कार्य यह जाँचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या - एक संख्या जिसके अंकों की संख्या दी गई संख्या के अभाज्य गुणनखंड में अंकों की संख्या से अधिक है। उदाहरण − 625, संख्या 625 का अभाज्

  1. सी++ पेंटाटोप नंबर

    पास्कल के त्रिभुज में एक पंचकोण संख्या को पाँचवीं संख्या के रूप में वर्णित किया गया है। अब, जैसा कि आप जानते हैं, यह पांचवीं संख्या है, तो इसका मतलब है कि हमारे पास पास्कल के त्रिकोण में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है। पास्कल त्रिभुज की

  1. C++ में दी गई संख्या का बाइनरी प्रतिनिधित्व

    एक बाइनरी नंबर एक संख्या है जिसमें केवल दो अंक 0 और 1 होते हैं। उदाहरण के लिए, 01010111। किसी दिए गए नंबर को बाइनरी रूप में दर्शाने के कई तरीके हैं। पुनरावर्ती विधि इस विधि का उपयोग किसी संख्या को उसके द्विआधारी रूप में प्रत्यावर्तन का उपयोग करके दर्शाने के लिए किया जाता है। एल्गोरिदम Step 1 : if