18 lines
501 B
Text
18 lines
501 B
Text
module ShowFactorials {
|
|
static <Value extends IntNumber> Value factorial(Value n) {
|
|
assert:arg n >= Value.zero();
|
|
return n <= Value.one() ? n : n * factorial(n-Value.one());
|
|
}
|
|
|
|
@Inject Console console;
|
|
void run() {
|
|
// 128-bit test
|
|
UInt128 bigNum = 34;
|
|
console.print($"factorial({bigNum})={factorial(bigNum)}");
|
|
|
|
// 64-bit test
|
|
for (Int i : 10..-1) {
|
|
console.print($"factorial({i})={factorial(i)}");
|
|
}
|
|
}
|
|
}
|