summary refs log tree commit diff stats
path: root/assignments/27-fac-rec.c
diff options
context:
space:
mode:
authorsmlckz <smlckz@college>2021-12-24 15:21:53 +0530
committersmlckz <smlckz@college>2021-12-24 15:21:53 +0530
commit6dec141d4529a490384eb42314c04428fc58ba20 (patch)
treea0bc436963bfa404c5208f12ad637f11fc70b20d /assignments/27-fac-rec.c
parentb73983c3717642ca10e7cfe93d97609adc377da9 (diff)
downloadcollege-6dec141d4529a490384eb42314c04428fc58ba20.tar.gz
backup HEAD master
Diffstat (limited to 'assignments/27-fac-rec.c')
-rw-r--r--assignments/27-fac-rec.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/assignments/27-fac-rec.c b/assignments/27-fac-rec.c
new file mode 100644
index 0000000..13f00d3
--- /dev/null
+++ b/assignments/27-fac-rec.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+
+int fact(int n)
+{
+	if (n == 0)
+		return 1;
+	else
+		return n * fact(n - 1);
+}
+
+int main(void)
+{
+	int n;
+	printf("To calculate the factorial of a given number\n\n");
+	printf("Enter a number: ");
+	scanf("%d", &n);
+	if (n < 0) {
+		printf("Invalid input, must be greater than -1\n");
+		return 0;
+	}
+	printf("%d! = %d\n", n, fact(n));
+	return 0;
+}
+
+/*
+Output:
+Set 1:
+To calculate the factorial of a given number
+
+Enter a number: -1
+Invalid input, must be greater than zero
+
+Set 2:
+To calculate the factorial of a given number
+
+Enter a number: 0
+0! = 1
+
+Set 3:
+To calculate the factorial of a given number
+
+Enter a number: 5
+5! = 120
+
+Set 4:
+To calculate the factorial of a given number
+
+Enter a number: 10
+10! = 3628800
+
+*/
+