编写C++递归函数,计算x的y(y>0)次幂。 main提示: int main() int number, power; long answer; cin >> number; cin >> power; answer = GetPower(number, power); cout << answer << endl; return 0;
时间: 2023-06-24 21:05:47 浏览: 207
下面是一个简单的C++递归函数,用于计算x的y次幂。
```cpp
#include <iostream>
using namespace std;
long GetPower(int x, int y) {
if (y == 0) { // 如果y等于0,直接返回1
return 1;
} else if (y == 1) { // 如果y等于1,直接返回x
return x;
} else { // 如果y大于1,递归计算
return x * GetPower(x, y-1);
}
}
int main() {
int number, power;
long answer;
cin >> number;
cin >> power;
answer = GetPower(number, power);
cout << answer << endl;
return 0;
}
```
在上面的代码中,我们使用了递归函数来计算x的y次幂。如果y等于0,则返回1;如果y等于1,则返回x;如果y大于1,则递归计算x的y-1次幂,并将结果乘以x。最终,我们在main函数中调用GetPower函数,并将结果输出到控制台。
相关问题
【程序填空】功能:通过函数的递归调用计算阶乘。 ------------------------------------------------------- long power(int n) { long f; if(n>1) /***********SPACE***********/ f=【1】; else f=1; return(f); } main() { int n; long y; cout<<"input a inteager number:"; /***********SPACE***********/ cin>>【2】; y=power(n); /***********SPACE***********/ cout<<n<<"!="<<【3】); }
题目中的空白处应填写:
1. f=n*power(n-1)
2. n
3. y
完整代码如下:
```c++
#include <iostream>
using namespace std;
long power(int n)
{
long f;
if(n > 1)
f = n * power(n-1);
else
f = 1;
return(f);
}
int main()
{
int n;
long y;
cout << "input an integer number: ";
cin >> n;
y = power(n);
cout << n << "! = " << y;
return 0;
}
```
注意:该程序需要使用递归的方式来计算阶乘,需要在函数内部反复调用自身,直到满足终止条件。
输出正弦函数的泰勒级数结果C++包含阶乘
好的,以下是输出正弦函数的泰勒级数结果(前10项)的C++代码,包括阶乘计算:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 计算阶乘
long long factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
double x, result = 0;
int n;
cout << "Enter the value of x (in radians): ";
cin >> x;
cout << "Enter the number of terms to be included in the series: ";
cin >> n;
for (int i = 0; i < n; i++) {
int power = 2 * i + 1;
long long fact = factorial(power);
double term = pow(x, power) / fact;
if (i % 2 == 0) {
result += term;
} else {
result -= term;
}
}
cout << "sin(" << x << ") = " << result << endl;
return 0;
}
```
注:该代码中的阶乘计算使用了递归方式,可能在计算较大的阶乘时会出现栈溢出的问题,需要注意。
阅读全文