Poison

剑指 Offer 14- II. 剪绳子 II

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public int cuttingRope(int n) {
// if 2: 1
// if 3: 2
if (n <= 3) {
return n - 1;
}

int p = 1000000007;
long res = 1;
while (n > 4) { // 注意此处为 4 而不是 3, 及跳出时保证 n 大于等于 1, 防止 return 的乘法将 res 归零
res = res * 3 % p;
n -= 3;
}

return (int) (res * n % p);
}
}
Reference

剑指 Offer 14- II. 剪绳子 II