इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो एक पूर्णांक को अद्वितीय संख्याओं की दी गई n-th शक्ति के योग के रूप में व्यक्त करने के तरीकों की संख्या ज्ञात करता है।
हमारे पास दो पूर्णांक हैं संख्या और शक्ति . और हमें यह पता लगाने की जरूरत है कि दिए गए संख्या . को हम कितने तरीकों से निरूपित कर सकते हैं अद्वितीय प्राकृतिक संख्याओं की n-वें शक्ति के योग के रूप में। आइए एक उदाहरण देखें।
इनपुट − संख्या =50, शक्ति =2
आउटपुट -3
केवल एक ही संभव तरीका है जिससे हम 4 को 2 घातों के योग के रूप में लिख सकते हैं।
हम समस्या को हल करने के लिए रिकर्सन का उपयोग करेंगे। आइए समस्या को हल करने के लिए चरणों को देखें।
-
संख्या और शक्ति को प्रारंभ करें।
-
एक उपयुक्त नाम के साथ एक पुनरावर्ती कार्य लिखें। यह नंबर स्वीकार करता है , शक्ति और मैं तर्क के रूप में।
-
यदि संख्या शून्य से कम है या पाउ(i, पावर) संख्या . से बड़ा है , फिर वापस 0.
-
यदि संख्या शून्य है या पाउ (i, शक्ति) संख्या के बराबर है, तो 1 लौटाएं।
-
कार्यों की कुल संख्या की गणना करने के लिए हमारे पास दो पुनरावर्ती कॉल हैं
-
i . बढ़ाएं ।
-
पहले रिकर्सिव कॉल में, दिए गए नंबर से कम नंबर की जांच करें।
-
दूसरी पुनरावर्ती कॉल में, दिए गए नंबर की जांच करें।
-
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h> using namespace std; int findPossibleWaysCount(int number, int power, int i = 1) { if(number < 0 || number < pow(i, power)) { return 0; } if(number == 0 || number == pow(i, power)) { return 1; } return findPossibleWaysCount(number - pow(i, power), power, i + 1) + findPossibleWaysCount(number, power, i + 1); } int main() { // initializing the number and power int number = 50, power = 2; cout << findPossibleWaysCount(number, power) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
3
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।