From b88af07fd0507fc4282d2b325e7762d3cc1bccfe Mon Sep 17 00:00:00 2001 From: kde0820 Date: Tue, 14 Nov 2017 01:11:41 +0900 Subject: [PATCH] Add C example for recursion (#41) --- 03_recursion/c/01_countdown.c | 19 +++++++++++++++++++ 03_recursion/c/02_greet.c | 23 +++++++++++++++++++++++ 03_recursion/c/03_factorial.c | 15 +++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 03_recursion/c/01_countdown.c create mode 100644 03_recursion/c/02_greet.c create mode 100644 03_recursion/c/03_factorial.c diff --git a/03_recursion/c/01_countdown.c b/03_recursion/c/01_countdown.c new file mode 100644 index 0000000..49d67ed --- /dev/null +++ b/03_recursion/c/01_countdown.c @@ -0,0 +1,19 @@ +#include + +void countdown(int i) { + printf("%d\n", i); + + // base case + if (i <= 0) + return; + //recursive case + else + countdown(i - 1); +} + +int main(void) { + + countdown(5); + + return 0; +} \ No newline at end of file diff --git a/03_recursion/c/02_greet.c b/03_recursion/c/02_greet.c new file mode 100644 index 0000000..b13fb9d --- /dev/null +++ b/03_recursion/c/02_greet.c @@ -0,0 +1,23 @@ +#include + +void greet2(char *name) { + printf("how are you, %s?\n", name); +} + +void bye() { + printf("ok bye!\n"); +} + +void greet(char *name) { + printf("hello, %s!\n", name); + greet2(name); + printf("getting ready to say bye...\n"); + bye(); +} + +int main(void) { + + greet("adit"); + + return 0; +} \ No newline at end of file diff --git a/03_recursion/c/03_factorial.c b/03_recursion/c/03_factorial.c new file mode 100644 index 0000000..f163ba2 --- /dev/null +++ b/03_recursion/c/03_factorial.c @@ -0,0 +1,15 @@ +#include + +int fact(int x) { + if (x == 1) + return 1; + else + return x * fact(x - 1); +} + +int main(void) { + + printf("%d", fact(5)); + + return 0; +} \ No newline at end of file