在C++中尋找整數能表示為唯一自然數的n次冪之和的方法
在本教程中,我們將編寫一個程式來查詢整數可以表示為給定n次冪的唯一數字之和的方式的數量。
我們有兩個整數**number**和**power**。我們需要找到有多少種方法可以將給定的**number**表示為唯一自然數的n次冪之和。讓我們來看一個例子。
**輸入** - number = 50, power = 2
**輸出** - 3
只有一種可能的方法可以將4寫成2的冪之和。
我們將使用遞迴來解決這個問題。讓我們看看解決問題的步驟。
初始化數字和冪。
編寫一個具有合適名稱的遞迴函式。它接受**number**、**power**和**i**作為引數。
如果**number**小於零或**pow(i, power)**大於**number**,則返回0。
如果number為零或pow(i, power)等於number,則返回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
結論
如果您在本教程中還有任何疑問,請在評論區提出。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP