# Recursion Tutorial

### From Progzoo

(Difference between revisions)

(→Factorial Function) |
(→Factorial Function) |
||

Line 15: | Line 15: | ||

else | else | ||

return i*fact(i-1); | return i*fact(i-1); | ||

+ | } | ||

+ | } | ||

+ | </prog> | ||

+ | The function '''fact''' takes a single integer input. The result is that number times by each of the numbers smaller - down to one. | ||

+ | fact(1) = 1 = 1 | ||

+ | fact(2) = 1*2 = 2 | ||

+ | fact(3) = 1*2*3 = 6 | ||

+ | fact(4) = 1*2*3*4 = 24 | ||

+ | fact(5) = 1*2*3*4*5 = 120 | ||

+ | </question> | ||

+ | |||

+ | |||

+ | ==What is the function== | ||

+ | |||

+ | <question class='P'> | ||

+ | <prog> | ||

+ | public class P{ | ||

+ | public static void main(String argv[]) | ||

+ | { | ||

+ | for (int i=0;i<5;i++) | ||

+ | System.out.printf("%d%8d\n",i,fact(i)); | ||

+ | } | ||

+ | |||

+ | static int f(int i){ | ||

+ | if (i==0) | ||

+ | return 1; | ||

+ | else | ||

+ | return i*f(i-1); | ||

} | } | ||

} | } |

## Revision as of 15:02, 9 February 2012

Recursive functions typically have a base case and a recursive case.

## Factorial Function

The function **fact** takes a single integer input. The result is that number times by each of the numbers smaller - down to one.

fact(1) = 1 = 1 fact(2) = 1*2 = 2 fact(3) = 1*2*3 = 6 fact(4) = 1*2*3*4 = 24 fact(5) = 1*2*3*4*5 = 120

[Font]
[Default]
[Show]
[Resize]
[History]
[Profile]

## What is the function

Line: 123 DOMDocument::loadXML(): StartTag: invalid element name in Entity, line: 6