ๆดๆฐๆๅ ๐๐๐ไธญ็ญ
่ฏพๅไฝไธ
้ฎ้ขๆ่ฟฐ
ๅๆ้พๆฅ๏ผ343. ๆดๆฐๆๅ
็ปๅฎไธไธชๆญฃๆดๆฐ n ๏ผๅฐๅ ถๆๅไธบ k ไธช ๆญฃๆดๆฐ ็ๅ๏ผ k >= 2 ๏ผ๏ผๅนถไฝฟ่ฟไบๆดๆฐ็ไน็งฏๆๅคงๅใ
่ฟๅ ไฝ ๅฏไปฅ่ทๅพ็ๆๅคงไน็งฏ ใ
็คบไพ 1:
่พๅ
ฅ: n = 2
่พๅบ: 1
่งฃ้: 2 = 1 + 1, 1 ร 1 = 1ใ
็คบไพ 2:
่พๅ
ฅ: n = 10
่พๅบ: 36
่งฃ้: 10 = 3 + 3 + 4, 3 ร 3 ร 4 = 36ใ
ๆ็คบ:
2 <= n <= 58
ไปฃ็ ๅฎ็ฐ
Java
class Solution {
public int integerBreak(int n) {
int res = n / 3;
int mod = n % 3;
if(n <= 2){
return 1;
}
if(n <= 3){
return 2;
}
if(mod == 0){
return (int)Math.pow(3, res);
}else if(mod == 1){
return (int)Math.pow(3, res - 1) * 4;
}else{
return (int)Math.pow(3, res) * 2;
}
}
}
Python
class Solution(object):
def integerBreak(self, n):
"""
:type n: int
:rtype: int
"""
res = n // 3
mod = n % 3
if n <= 2:
return 1
elif n == 3:
return 2
if mod == 0:
return 3 ** res
elif mod == 1:
return 3 ** (res - 1) * 4
else:
return 3 ** res * 2
C++
class Solution {
public:
int integerBreak(int n) {
int res = n / 3;
int mod = n % 3;
if (n <= 2) {
return 1;
} else if (n == 3) {
return 2;
}
if (mod == 0) {
return pow(3, res);
} else if (mod == 1) {
return pow(3, res - 1) * 4;
} else {
return pow(3, res) * 2;
}
}
};
Go
func integerBreak(n int) int {
res := n / 3
mod := n % 3
if n <= 2 {
return 1
} else if n == 3 {
return 2
}
if mod == 0 {
return int(math.Pow(3, float64(res)))
} else if mod == 1 {
return int(math.Pow(3, float64(res-1))) * 4
} else {
return int(math.Pow(3, float64(res))) * 2
}
}