48 lines
774 B
Plaintext
48 lines
774 B
Plaintext
int fact(int n) {
|
|
if (n == 0) { return 1; }
|
|
else { return n * fact(n - 1); };
|
|
}
|
|
|
|
<int, int> divrem(int x, int y) {
|
|
(int a, int b) = (x / y, x % y);
|
|
return (a, b);
|
|
}
|
|
|
|
int impfact(int n) {
|
|
int ret = 1;
|
|
while(n > 1) {
|
|
ret = ret * n;
|
|
n = n - 1;
|
|
};
|
|
return ret;
|
|
}
|
|
|
|
int factacc(int n, int a) {
|
|
if (n == 0) { return a; }
|
|
else { return factacc(n - 1, n * a); };
|
|
}
|
|
|
|
int fact2(int n) {
|
|
return factacc(n, 1);
|
|
}
|
|
|
|
int fib_h(int n, int a, int b) {
|
|
if(n == 0) { return a; }
|
|
else { return fib_h(n - 1, b, a + b); };
|
|
}
|
|
|
|
int fib(int n) {
|
|
return fib_h(n, 0, 1);
|
|
}
|
|
|
|
<int, int> fibfact(int n) {
|
|
return (fib(n), fact(n));
|
|
}
|
|
|
|
void printFibUpTo(int n) {
|
|
int x = 0;
|
|
while(x < n) {
|
|
printLine(intToString(fib(x)));
|
|
x = x + 1;
|
|
};
|
|
} |