You are not logged in.
Pages: 1
Functional:
///ackermann(m,n)
//Source: https://rosettacode.org/wiki/Ackermann_function#GML
var m = argument0, n = argument1;
if(m=0) {
return (n+1)
} else if(n == 0) {
return (ackermann(m-1,1))
} else {
return (ackermann(m-1,ackermann(m,n-1)))
}
Imperative:
///ackermann(m,n)
//Source: http://stackoverflow.com/a/1095538/4538129
var m = argument0, n = argument1;
var s = ds_stack_create();
ds_stack_push(s,m);
while (ds_stack_size(s)>0) {
m = ds_stack_pop(s)
if (m == 0) {
n++
} else if (n == 0) {
ds_stack_push(s,m-1)
n=1
} else {
ds_stack_push(s,m-1)
ds_stack_push(s,m)
n--
}
}
return n
pls don't kill me xot
Last edited by AnastasiaDunbar (2016-04-08 16:40:03)
Offline
Abusing forum power since 1986.
Offline
Pages: 1