本文主要是介绍326. Power of Three(3 的幂),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n = 3 x n = 3^x n=3x
问题分析
要证明一个整数是三的幂次方,显然我们可以将其余的不是三的幂次方的数写作下式 n = m ∗ 3 x + y n = m*3^x+y n=m∗3x+y
其中y是小于 3 x 3^x 3x的,所以对于此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;
}
提交结果截图
这篇关于326. Power of Three(3 的幂)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!