/******************************************************************** * Matt Kretchmar * March 24, 2006 * RecursionExamples.java * This program illustrates how to compute superSum(n) using two * different methods: iterative and recursive. ********************************************************************/ import java.util.Scanner; class RecursionExamples { /**************************************************************** * main ****************************************************************/ public static void main ( String args[] ) { Scanner keyboard = new Scanner(System.in); System.out.println("Enter n:"); int n = keyboard.nextInt(); System.out.println("SSI("+n+") = " + superSumIterative(n) ); System.out.println("SSR("+n+") = " + superSumRecursive(n) ); } /**************************************************************** * superSumIterative * This method uses iteration (loops) to compute superSum(n). * s(n) = 1 + 2 + ... + n ****************************************************************/ public static int superSumIterative ( int n ) { int sum = 0; for ( int i = 1; i <= n; i++ ) sum = sum + i; return sum; } /**************************************************************** * superSumRecursive * This method uses recursion to compute superSum(n) * Base case: if n = 1, then superSum(1) = 1 * Recursive case: otherwise superSum(n) = n + superSum(n-1) ****************************************************************/ public static int superSumRecursive ( int n ) { if ( n == 1 ) return 1; else return ( n + superSumRecursive(n-1) ); } }