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

C++ में किसी संख्या को घातों के योग के रूप में व्यक्त करने के तरीके गिनें


इनपुट के रूप में दो संख्याओं की संख्या और शक्ति को देखते हुए। लक्ष्य उन तरीकों को खोजना है जिनमें संख्या को दी गई शक्ति में उठाए गए अद्वितीय प्राकृतिक संख्याओं के योग के रूप में दर्शाया जा सकता है। यदि अंक 10 है और घात 2 है तो हम 10 को 12+32 के रूप में निरूपित कर सकते हैं। तो कुल 1 रास्ता।

उदाहरण के लिए

इनपुट

num=30

आउटपुट

Count of ways to express a number as sum of powers are: 2

स्पष्टीकरण

The ways in which we can express 30 as sum of powers:
12 + 22 + 52 and 12 + 22 + 32 + 42

इनपुट

num=35

आउटपुट

Count of ways to express a number as sum of powers are: 1

स्पष्टीकरण

The ways in which we can express ‘num’ as sum of powers: 22 + 32

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम पहले जांचते हैं कि क्या संख्या ही किसी संख्या की शक्ति है शक्ति . यदि हाँ, तो 1 के रूप में वापस लौटें, यदि नहीं, तो योग संख्या के लिए पुनरावर्ती रूप से जाँच करें power + (num+1) पावर

  • इनपुट के रूप में दो पूर्णांक संख्या और शक्ति लें।

  • फ़ंक्शन sum_of_powers(int num, int power, int val) एक संख्या लेता है और दिए गए घात में उठाए गए अद्वितीय प्राकृतिक संख्याओं के योग के रूप में 'num' को व्यक्त करने के तरीकों की गिनती देता है।

  • चेक लें =(संख्या - पाउ (वैल, पावर))। अगर चेक 0 है तो 1 लौटाएं क्योंकि नंबर ही वैल है पावर

  • अगर चेक 0 से कम है तो 0 वापस करें।

  • नहीं तो temp=val+1 लें।

  • (sum_of_powers(check, power, temp) + sum_of_powers(num, power, temp)) का रिटर्न योग।

  • अंत में हमें मूल्य वापस करने के तरीके मिलेंगे।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int sum_of_powers(int num, int power, int val){
   int check = (num − pow(val, power));
   if(check == 0){
      return 1;
   }
   else if(check < 0){
      return 0;
   } else {
      int temp = val + 1;
      return sum_of_powers(check, power, temp) + sum_of_powers(num, power, temp);
   }
}
int main(){
   int num = 25, power = 2;
   cout<<"Count of ways to express a number as sum of powers are: "<<sum_of_powers(num, power, 1);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of ways to express a number as sum of powers are: 2

  1. उन नोड्स की गणना करें जिनका योग X के साथ C++ में एक फाइबोनैचि संख्या है

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ

  1. C++ में एक सेट को k सबसेट में विभाजित करने के तरीकों की संख्या की गणना करें

    दो अंक e और p दिए गए हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p विभाजन/सबसेट में विभाजित कर सकते हैं। उदाहरण के लिए इनपुट e=4 p=2 आउटपुट Count of number of ways to partition a set into k subsets are: 7 स्पष्टीकरण If elements are: a b c d then ways to divide them into

  1. जाँच करें कि क्या C++ में किसी संख्या को घात के रूप में व्यक्त किया जा सकता है

    यहां हम जांच करेंगे कि क्या हम किसी संख्या को घात के रूप में प्रदर्शित कर सकते हैं, जैसे ab या नहीं। मान लीजिए एक संख्या 125 मौजूद है। इसे 53 . के रूप में दर्शाया जा सकता है . एक अन्य संख्या 91 को किसी पूर्णांक मान की घात के रूप में प्रदर्शित नहीं किया जा सकता है। एल्गोरिदम isRepresentPower(num): Be