判斷乙個數字是否可以表示成三的冪的和

2021-10-21 14:41:25 字數 823 閱讀 5942

給你乙個整數 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 解釋 從右向左...