1006. 笨阶乘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Solution {
public int clumsy(int N) {
int k = N % 4;
int m = N / 4;
int ans = 0;
boolean bool = true;
while (m > 0) {
int a = Math.floorDiv(N * (N - 1), N - 2);
int b = N - 3;
ans -= a;
if (bool) {
ans = Math.abs(ans);
bool = false;
}
ans += b;

N = N - 4;
m--;
}

if (k == 3) {
ans -= k * (k - 1)/(k - 2);
if (bool) {
ans = Math.abs(ans);
}
} else if (k == 2) {
ans -= k * (k - 1);
if (bool) {
ans = Math.abs(ans);
}
}else {
ans -= k;
if (bool) {
ans = Math.abs(ans);
}
}

return ans;
}
}