c++利用递归算法,求2的n次幂 提交要求
时间: 2024-05-14 20:15:11 浏览: 17
作为 AI,我无法提交作业,但是我可以给出递归算法求解2的n次幂的代码:
```
int power(int n) {
if (n == 0) {
return 1;
} else {
return 2 * power(n - 1);
}
}
```
该递归算法将2的n次幂表示为2乘以2的n-1次幂,递归地调用自身计算2的n-1次幂,直到n为0时返回1。该算法的时间复杂度为O(n)。
相关问题
编写C++程序利用递归算法,求2的n次幂 提交要求
这里是 AI 语言模型,以下是 C 语言的递归算法求2的n次幂的示例代码:
```c
#include <stdio.h>
int power(int base, int exp) {
if (exp == 0) {
return 1;
} else if (exp == 1) {
return base;
} else {
return base * power(base, exp - 1);
}
}
int main() {
int n = 10;
printf("2^%d = %d\n", n, power(2, n));
return 0;
}
```
在上面的代码中,`power` 函数使用递归算法,当指数 `exp` 为0时,函数返回1,当 `exp` 为1时,函数返回底数 `base`,否则函数返回 `base` 乘以 `power(base, exp - 1)` 的结果。
程序输出:
```
2^10 = 1024
```
注意:当指数较大时,递归算法可能会导致栈溢出,因此可以使用循环或迭代算法来代替。
c++递归算法求阶乘
C++递归算法求阶乘的实现如下:
```cpp
#include <iostream>
int factorial(int n) {
// 基线条件,当n为0或1时,直接返回1
if (n == 0 || n == 1) {
return 1;
}
// 递归调用,将问题规模缩小,求解n-1的阶乘
return n * factorial(n - 1);
}
int main() {
int n;
std::cout << "请输入一个非负整数:";
std::cin >> n;
std::cout << n << "的阶乘是:" << factorial(n) << std::endl;
return 0;
}
```
以上代码中,`factorial`函数使用递归的方式来求解阶乘。当输入的n为0或1时,直接返回1作为基线条件。否则,递归调用`factorial`函数来求解n-1的阶乘,并将结果与n相乘返回。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)