用递归算法求2的n次方Java
时间: 2023-08-05 11:02:51 浏览: 60
好的,我来为您展示用递归算法求2的n次方的Java代码:
```
public static int powerOfTwo(int n) {
if (n == 0) {
return 1;
} else {
return 2 * powerOfTwo(n-1);
}
}
```
在这个递归函数中,当参数n为0时,返回1,因为2的0次方为1。否则,返回2乘以递归调用powerOfTwo(n-1)的结果,直到n为0为止。
相关问题
用递归算法求x的n次方
好的,可以使用如下的递归算法来求 x 的 n 次方:
```python
def power(x, n):
if n == 0:
return 1
elif n < 0:
return 1 / power(x, -n)
elif n % 2 == 0:
return power(x * x, n / 2)
else:
return x * power(x, n - 1)
```
这个递归算法的思路是,首先处理 n 为 0 和负数的情况,然后处理 n 为偶数的情况,最后处理 n 为奇数的情况。对于 n 为偶数的情况,我们可以将 x 的 n 次方转化为 x 的 n/2 次方的平方,这样就可以减少递归的次数。对于 n 为奇数的情况,我们可以将 x 的 n 次方转化为 x * x 的 n-1 次方,这样就可以将奇数的情况转化为偶数的情况,从而使得递归可以终止。
需要注意的是,在计算负数次方的时候,我们可以先将 n 取反,然后计算 x 的 -n 次方,最后取倒数即可。
java递归输出2的n次方个星号
以下是Java递归输出2的n次方个星号的示例代码:
```
public class Main {
public static void main(String[] args) {
int n = 5;
printStars(n);
}
public static void printStars(int n) {
if (n == 0) {
return;
}
printStars(n - 1);
for (int i = 0; i < Math.pow(2, n); i++) {
System.out.print("*");
}
System.out.println();
}
}
```
输出结果为:
```
*
**
****
********
****************
```