写一个函数来判断它是否是 3 的幂次方
时间: 2023-04-01 22:00:52 浏览: 189
可以使用循环或者递归来判断一个数是否是 3 的幂次方。以下是一个使用循环的函数实现:
```c
int isPowerOfThree(int n) {
if (n <= ) {
return ;
}
while (n % 3 == ) {
n /= 3;
}
return n == 1;
}
```
该函数首先判断输入的数是否小于等于 ,如果是则直接返回 。然后使用循环不断将输入的数除以 3,直到无法整除为止。如果最终得到的数是 1,则说明输入的数是 3 的幂次方,返回 1;否则返回 。
注意,该函数只适用于正整数,如果输入的是负数或者 ,则直接返回 。
相关问题
使用递归的方法,写一个函数来判断它是否是4的幂次方。c++
以下是判断一个数是否为4的幂次方的递归函数实现:
```c
int isPowerOfFour(int num) {
if (num == 0) { // 0不是4的幂次方
return 0;
}
if (num == 1) { // 1是4的0次方
return 1;
}
if (num % 4 != 0) { // 如果num不能被4整除,就不是4的幂次方
return 0;
}
return isPowerOfFour(num / 4); // 递归判断num/4是否为4的幂次方
}
```
该函数的基本思路是,先判断输入的数是否为0或1,如果是则直接返回结果。如果输入的数不能被4整除,那么它肯定不是4的幂次方,返回0。否则,递归调用函数判断num/4是否为4的幂次方。
输入一个正整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 True ;否则,返回False。
以下是 Python 代码实现:
```python
def isPowerOfThree(n: int) -> bool:
if n <= 0:
return False
while n % 3 == 0:
n //= 3
return n == 1
```
该函数首先判断输入的数是否为非正整数,如果是则直接返回 False。然后进入循环,如果该数可以被 3 整除,则将其除以 3 继续判断。最后判断剩余的数是否等于 1,如果是则返回 True,否则返回 False。
阅读全文