Why does 0!=1

here is a rather simple explanation

we know n! = n(n-1)!
e.g. 6! = 6(5!)

and 1! = 1(0!) and we know that 1! = 1
so 1 = 1(0!)
0! = 1

another way is to look at the definition of C(n,r) which are the number of subsets of n elements.
e.g. C(6,2) is the number of 2-element subsets in 6 elements, and C(6,2) = 6!/(4!2!) = 15

so C(6,0) would be the number of null subsets, which of course is 1.
there is one null subset.

but C(6,0) = 6!/(6!0!)
720 = 720/(720(0!))
so 0! has to be 1