1
2
3
4 #include
5
6 int fact(int n) {
7 if(n < 0)
8 return 0;
9 else if(n == 0)
10 return 1;
11 else if(n == 1)
12 return 1;
13 else
14 return n * fact(n-1);
15 }
16
17
18 int facttail(int n, int a) {
19 if(n < 0)
20 return 0;
21 else if(n == 0)
22 return 1;
23 else if(n == 1)
24 return a;
25 else
26 return facttail(n-1, n*a);
27 }
28
29 int main(void) {
30 int input=10;
31 printf("\n%d factorial is %d\n", input, fact(input));
32 printf("\n%d tail factorial is %d\n", input, facttail(input,1));
33 return 0;
34 }