73 lines
1 KiB
Julia
73 lines
1 KiB
Julia
int main() {
|
|
printInt(fac(10));
|
|
printInt(rfac(10));
|
|
printInt(mfac(10));
|
|
printInt(ifac(10));
|
|
double r ; // just to test blocks
|
|
{
|
|
int n = 10;
|
|
int r = 1;
|
|
while (n>0) {
|
|
r = r * n;
|
|
n--;
|
|
}
|
|
printInt(r);
|
|
}
|
|
printDouble(dfac(10.0));
|
|
printString ("hello */");
|
|
printString ("/* world") ;
|
|
return 0 ;
|
|
}
|
|
|
|
int fac(int a) {
|
|
int r;
|
|
int n;
|
|
|
|
r = 1;
|
|
n = a;
|
|
while (n > 0) {
|
|
r = r * n;
|
|
n = n - 1;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
int rfac(int n) {
|
|
if (n == 0)
|
|
return 1;
|
|
else
|
|
return n * rfac(n-1);
|
|
}
|
|
|
|
int mfac(int n) {
|
|
if (n == 0)
|
|
return 1;
|
|
else
|
|
return n * nfac(n-1);
|
|
}
|
|
|
|
int nfac(int n) {
|
|
if (n != 0)
|
|
return mfac(n-1) * n;
|
|
else
|
|
return 1;
|
|
}
|
|
|
|
double dfac(double n) {
|
|
if (n == 0.0)
|
|
return 1.0;
|
|
else
|
|
return n * dfac(n-1.0);
|
|
}
|
|
|
|
int ifac(int n) { return ifac2f(1,n); }
|
|
|
|
int ifac2f(int l, int h) {
|
|
if (l == h)
|
|
return l;
|
|
if (l > h)
|
|
return 1;
|
|
int m;
|
|
m = (l + h) / 2;
|
|
return ifac2f(l,m) * ifac2f(m+1,h);
|
|
}
|