Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

!<arch>
ack             802831247   0     0     664     159       `
func ack(a, b) {
        n = n+1
        if(a == 0) return (b+1)
        if(b == 0)       return (ack(a - 1, 1))
        return (ack($1 - 1, ack(a, b - 1)))
}
n=0
ack(3,3)
print n, "calls\n"
ack1            802831362   0     0     664     194       `
func ack(a, b) {
        n = n+1
        if(a == 0) return (b+1)
        if(b == 0)       return (ack(a - 1, 1))
        return (ack(a - 1, ack(a, b - 1)))
}
n=0
while (read(x)) {
        read(y)
        print ack(x,y), "\n"
}
print n,"\n"
double          802831395   0     0     664     87        `
proc double(){
}
proc double(x){
        if(x > 1){
                double(x/2)
        }
        print(x)
}
double(1024)
fac             802831080   0     0     664     63        `
func fac(a) {
        if (a <= 0) return 1 else return a * fac(a-1)
}
fac1            802831478   0     0     664     80        `
func fac(a) if (a <= 0) return 1 else return a * fac(a-1)
fac(0)
fac(7)
fac(10)
fac2            802831524   0     0     664     140       `
func fac(i) {
        if (i <= 0) {
                return 1
        }
        return i * fac(i-1)
}
i=0
while(i<=20){
        print "factorial of ", i, "is ", fac(i), "\n"
        i=i+1
}
fib             802831546   0     0     664     98        `
proc fib(n) {
        a = 0
        b = 1
        while (b < n) {
                print b
                c = b
                b = a+b
                a = c
        }
        print "\n"
}
fib2            802827762   0     0     664     80        `
{
n=0
a=0
b=1
while(b<10000000){
        n=n+1
        c=b
        b=a+b
        a=c
        print(b)
}
print(n)
}
fibsum          802831600   0     0     664     144       `
proc fib(n){
        a=1
        b=1
        c=2
        d=3
        sum = a+b+c+d
        while(d<n){
                e=d+c
                print(e)
                a=b
                b=c
                c=d
                d=e
                sum=sum+e
        }
        print(sum)
}

fib(1000)
fibtest         802831587   0     0     664     126       `
proc fib(n) {
        a = 0
        b = 1
        while (b < n) {
                c = b
                b = a+b
                a = c
        }
}

i = 1
while (i < 1000) {
        fib(1000)
        i = i + 1
}