计算将数字表示为C ++幂和的方法
给定两个数字num和power作为输入。目的是找到将num表示为提高到给定幂的唯一自然数之和的方式。如果num是10,幂是2,那么我们可以将10表示为12 + 32。因此共有1种方式。
例如
输入值
num=30输出结果
用幂表示数字的方法有: 2
说明
The ways in which we can express 30 as sum of powers:12 + 22 + 52 and 12 + 22 + 32 + 42
输入值
num=35输出结果
用幂表示数字的方法有: 1
说明
The ways in which we can express ‘num’ as sum of powers: 22 + 32
以下程序中使用的方法如下-
在这种方法中,我们首先检查数字本身是否是任何num power的幂。如果是,则返回方式为1,如果不是,则递归检查num幂+(num + 1)幂。
取两个整数num和power作为输入。
功能 sum_of_powers(int num, int power, int val) 取一个num并返回表示“ num”的方式计数,即将自然数加到给定幂的和。
进行check =(num- pow(val, power))。如果check为0,则返回1,因为数字本身为val power。
如果校验小于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<<"用幂表示数字的方法有: "<<sum_of_powers(num, power, 1);
return 0;
}
如果我们运行上面的代码,它将生成以下输出-
用幂表示数字的方法有: 2
以上是 计算将数字表示为C ++幂和的方法 的全部内容, 来源链接: utcz.com/z/337932.html