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

2021-10-22 16:51:18 字數 1243 閱讀 7257

題目描述:

給你乙個整數 n ,如果你可以將 n 表示成若干個不同的三的冪之和,請你返回 true ,否則請返回 false 。

對於乙個整數 y ,如果存在整數 x 滿足 y == 3x ,我們稱這個整數 y 是三的冪。

示例 1:

輸入:n = 12

輸出:true

解釋:12 = 31 + 32

示例 2:

輸入:n = 91

輸出:true

解釋:91 = 30 + 32 + 34

示例 3:

輸入n = 21

輸出:false

1 <= n <= 107

方法1:

(1)先將可能組成給定的n的元素計算出來,按照公升序儲存到陣列中;

(2)然後對該陣列進行反向遍歷,找出該n的可能的組成;

(3)反向遍歷時,若是n大於某個元素,則該元素一定是n的組成,因為該元素前面的所有元素相加,也小於該元素;

class

solution

for(

int i=nums.

size()

-1;i>=

0;i--)}

return n==0;

}};

go語言實現

func

checkpowersofthree

(n int

)bool

for i:=

len(nums)-1

;i>=

0;i--

}return n==

0}

方法2:

主要思路:

(1)將該數作為3進製進行判斷,則不能出現某個位上是2的情形;

class

solution

}return

true;}

};

go語言實現

func

checkpowersofthree

(n int

)bool

}return

true

}

判斷乙個數字是否是回文

最近碰到乙個題目,其中一步判斷數字是否為回文 由於題目要求是最短時間實現,不要考慮實現本身的效率 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 解釋 從右向左...

判斷乙個數字是否是回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。看到這個題目最先想到的就是將這個整形數字轉化成字元陣列,然後對這個字元陣列進行遍歷,這種思路當然是可以的,但是時間複雜度較高,還要引入乙個陣列,空間複雜度較高。第二個想法是將數字本身反轉,然後將反轉後的數字與原始...