// Some methods that demonstrate recursion public class Recursion { public static void main( String args[] ) { System.out.println( factorial( 5 ) ); System.out.println( power( 8, 4 ) ); int list[] = { 1,3,8,2,9,6 }; reverseArray( list, 0, 5 ); for( int i = 0; i < 6; i++ ) System.out.print( list[i] + " " ); System.out.println(); } public static int factorial( int n ) { if ( n == 0 ) return 1; else return n * factorial( n - 1 ); } public static int power( int x, int n ) { if ( n == 0 ) return 1; if ( n % 2 == 1 ) { int y = power( x, n/2 ); return x*y*y; } else { int y = power( x, n/2 ); return y*y; } } public static void reverseArray( int S[], int i, int j ) { if ( i < j ) { // swap S[i] and S[j] int temp = S[i]; S[i] = S[j]; S[j] = temp; reverseArray( S, i+1, j-1 ); } } }