Clumsy Factorial LeetCode solution in C++
1class Solution {2public:3int calc(int num) {4int a = num, b = num - 1, c = num - 2;5return a * b / c;6}7int clumsy(int n) {8if (n == 1) return 1;9if (n == 2) return 2;10if (n == 3) return 6;11int res = calc(n), i;12res += n - 3;13for (i = n - 4; i >= 4; i -= 4) {14int val = calc(i);15res -= val;16res += i - 3;17}18if (i == 1)19return res - 1;20else if (i == 2)21return res - 2;22else if (i == 3)23return res - 6;24return res;25}26};