Sample Recursive Functions
These are some sample recursive functions used as demonstration and quiz questions.
by Ron Eaglin
HTML
<input type="button" value="Go 1" onclick="alert(f(3))"/>
<input type="button" value="Go 2" onclick="alert(f1(2,2))"/>
<input type="button" value="Go 3" onclick="alert(f2(17))"/>
<input type="button" value="Go 4" onclick="alert(fb(5,2))"/>
<input type="button" value="Go 5" onclick="alert(f3(100))"/>
<input type="button" value="Go 6" onclick="alert(f4(2.00))"/>
<input type="button" value="Go 7" onclick="alert(f5(2,3,4))"/>
JavaScript
function f(n) {
if (n == 4) return n;
return 2*f(n+1);
}
function f1(x,y){
if (x ==0) return y;
return f1(x-1, x+y);
}
function f2(n) {
if (n == 0) return "";
return n % 2 + " " + f2(parseInt(n/2));
}
function fa(x, y){
if (y == 0) return 0;
return (x + fa(x, y-1));
}
function fb(x, y) {
if (y == 0) return 1;
return fa(x, fb(x, y-1));
}
function f3(n){
if (n <= 1) return 1;
if (n%2 == 0) return f3(parseInt(n/2));
return f3(parseInt(n/2)) + f3(parseInt(n/2) + 1);
}
function f4(x){
if (Math.abs(x*x - 4) < 0.01) return x;
return f(x/3 + 2/x);
}
function f5(n, a, b){
if (n <= 0) return 0;
return f5(n-1, a, b+n) + n + a + b + f5(n-1, b, a+n);
}