I was reading the code for the Catalan numbers algorithms in C and I found the phrase I don't quite understand. Here it is (recursively):
typedef unsigned long long ull;
ull catalan2(int n) {
int i;
ull r = !n;
for (i = 0; i < n; i++)
r += catalan2(i) * catalan2(n - 1 - i);
return r;
}
Can someone please tell ma what the phrase r = !n is responsible for here?
Thank you in advance!