题目如下:
其实可以使用递归,可以以四个数字为一组来进行运算,这样的话就避免了创建一个方法来完成运算
JAVA代码如下:
package main.java.com.leetcode;
public class Solution_1006 {
public int clumsy(int N) {
if (N <= 2)
return N;
if (N == 3)
return 6;
int sum = N * (N - 1) / (N - 2) + N - 3;
N -= 4;
while (N >= 4) {
sum += (-N * (N - 1) / (N - 2) + N - 3);
N -= 4;
}
return sum - clumsy(N);
}
}
Python代码如下:
class Solution_1006:
def clumsy(self, N: int) -> int:
if N <= 2:
return N
if N == 3:
return 6
sum = N * (N-1) // (N-2) + N - 3
N -= 4
while N >= 4:
sum += -( N * (N-1) // (N-2) )+ N - 3
N -= 4
return sum - self.clumsy(N)
两种解法是一样的,只是使用了不同的编程语言而已,本质还是一样的