Files
C/002Factorial/factorial.c
T
2026-05-15 13:26:54 -04:00

48 lines
1.1 KiB
C

#include <stdio.h> // output to terminal
#include <stdlib.h> // has our atoi method
long factorial(int n);
int main(int argc, char **argv) {
// get first to arguments passed
// very first is name of program
printf("argv[0]: %s\n", argv[0]);
// argv[0] = ./nameofexecutable
// argv[1] will be our value to caluclate factorial
if (argc < 2) {
printf("error: value to calculate factorial is missing");
printf("\tUsage: ./factorial 3\n\twhere 3 is the value to calculate\n");
return -1;
}
// convert our char * to an int
int n = atoi(argv[1]);
printf("Factorial of %d is %ld\n", n, factorial(n));
return 0;
}
// use recursion first time through?
// then maybe show a simple for loop
long factorial(int n) {
// factorial is annotated as N!
// example: 5! = 5 x 4 x 3 x 2 x 1
// 0! = 1
// so properties of math yada yada..
// we can: 5! = 1 x 2 x 3 x 4 x 5
// we can use a basic loop and go all the way up to n
long answer = 1;
for (int i = 1; i <= n; i++) {
// answer = answer * i;
answer *= i;
}
return answer;
if (n == 1)
return 1;
return n * factorial(n - 1);
}