3的幂
題目描述
給定一個整數,寫一個函數來判斷它是否是 3 的冪次方。
示例 1:
輸入: 27 輸出: true示例 2:
輸入: 0 輸出: false示例 3:
輸入: 9 輸出: true示例 4:
輸入: 45 輸出: false進階:
你能不使用循環或者遞歸來完成本題嗎?
解法1:循環除法
/*** 循環除法* @param n* @return*/ public boolean isPowerOfThree(int n) {if(n==1) {return true;}if(n<2) {return false;}while(n%3 == 0 && n>1) {n/=3;}return n == 1;}解法2:遞歸法
/*** 遞歸法* @param n* @return*/ public boolean isPowerOfThree(int n) {if(n<1) {return false;}return handle(n);}public boolean handle(int n) {if(n == 1) {return true;}if(n%3 !=0) {return false;}else {return handle(n/3);}}解法3:使用數論知識
3的冪次的質因子只有3,1162261467是3的19次冪,是整數范圍內最大的3的冪次。給出的n如果是3的冪,那一定可以被1162261467整除。
總結
- 上一篇: 百合枸杞煮水喝的功效与作用、禁忌和食用方
- 下一篇: 帕斯卡三角形杨辉三角