326、3的幂

题目

https://leetcode-cn.com/problems/power-of-three

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == $3^x$

程序样例

1
2
3
bool isPowerOfThree(int n){

}

我的解答

关键代码

1
2
3
4
5
6
7
8
9
bool isPowerOfThree(int n){
if(n==1){
return true;
}else if(n%3!=0||n==0){
return false;
}
isPowerOfThree(n/3);
return;
}

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>

bool isPowerOfThree(int n){
if(n==1){
return true;
}else if(n%3!=0||n==0){
return false;
}
isPowerOfThree(n/3);
return;
}

main(){
int n;
scanf("%d",&n);
bool flag = isPowerOfThree(n);
printf("--%d--",flag);
}

复杂度分析

执行用时:36 ms, 在所有 C 提交中击败了9.59%的用户

内存消耗:6.2 MB, 在所有 C 提交中击败了21.05%的用户