题目描述
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n=3xn = 3^xn=3x
问题分析
要证明一个整数是三的幂次方,显然我们可以将其余的不是三的幂次方的数写作下式n=m∗3x+yn = m*3^x+yn=m∗3x+y
其中y是小于3x3^x3x的,所以对于此n连续除去x个3会得到m,如果m是1的话,y是0的话就能够保证n是3的幂次方。
所以如果能保证,n除去3得到的商仍是3的倍数,就能保证y=0,如果最后求出的商为1说明此数为3的幂次方。
代码
bool isPowerOfThree(int n) {
if(n<=0){
return 0;
}
while(n%3==0){
n/=3;
}
return n==1;
}
提交结果截图

判断整数是否为3的幂次方:算法与代码实现
本文介绍了一个用于判断整数是否为3的幂次方的函数,通过连续除以3并检查余数,如果最后商为1,则说明该数是3的幂次方。代码展示了如何利用这个方法进行验证。
808

被折叠的 条评论
为什么被折叠?



