aboutsummaryrefslogtreecommitdiff
path: root/examples/factorial.odin
blob: dd9b6f6eb9f054f55bcdad4970304764798f7e9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import "core:fmt.odin";

main :: proc() {
	recursive_factorial :: proc(i: u64) -> u64 {
		if i < 2 do return 1;
		return i * recursive_factorial(i-1);
	}

	loop_factorial :: proc(i: u64) -> u64 {
		result: u64 = 1;
		for n in 2..i {
			result *= n;
		}
		return result;
	}


	fmt.println(recursive_factorial(12));
	fmt.println(loop_factorial(12));
}