給你乙個整數 n ,如果你可以將 n 表示成若干個不同的三的冪之和,請你返回 true ,否則請返回 false 。
對於乙個整數 y ,如果存在整數 x 滿足 y == 3x ,我們稱這個整數 y 是三的冪。
1.從最大的3的冪開始,如果大於等於剩餘數字,就應當使用這一冪次(因為剩下的所有冪次加起來也比它小)。看最後是否能減到0。
class
solution
;while
(threes.
back()
< n)
threes.
emplace_back
(threes.
back()
*3);
for(
int i = threes.
size()
-1; i >=0;
--i)
return n ==0;
}};
2.轉化為三進製
可以將 n 表示成若干個不同的三的冪之和。
三進製表示
3
03^0
30=1 3
13^1
31=10 3
23^2
32=100 3
33^3
33=1000 3
43^4
34=10000 3
13^1
31=1…0
那麼n如果可以由上面這些的一些數相加而得,那麼一定是轉換為三進製不含2
class
solution
}
1780 判斷乙個數字是否可以表示成三的冪的和
題目描述 給你乙個整數 n 如果你可以將 n 表示成若干個不同的三的冪之和,請你返回 true 否則請返回 false 對於乙個整數 y 如果存在整數 x 滿足 y 3x 我們稱這個整數 y 是三的冪。示例 1 輸入 n 12 輸出 true 解釋 12 31 32 示例 2 輸入 n 91 輸出 ...
判斷乙個數字是否是回文
最近碰到乙個題目,其中一步判斷數字是否為回文 由於題目要求是最短時間實現,不要考慮實現本身的效率 1如果直接去實現,就是比較數字的最高位值和最低位,然後再。public boolean isp int x if x temp bit bit為數值位數 int temp1,temp2 for int ...
判斷乙個數字是否是回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...