Exercises
Recursion #1

Use the following function puzzle(..) to answer problems 1 - 3.

	int puzzle(int base, int limit)
	{	//base and limit are nonnegative numbers
		
		if ( base > limit )
			return -1;
		else if ( base == limit )
			return 1;
		else
			return base * puzzle(base + 1, limit);
	}
  1. Identify the base case(s) of function puzzle(..)

  2. Identify the recursive case(s) of function puzzle(..)
  3. Show what would be displayed by the following calls.
    1. System.out.print(puzzle(14,10));
    2. System.out.print(puzzle(4,7));
    3. System.out.print(puzzle(0,0));
    In problems 4 - 6, show the output that will be displayed by the call show(123);
  4.  
  5.  
  6. void show ( int n)
    {
    	if (n)
    		show (n/10);
    	System.out.print((n%10));
    }
    	void show ( int n)
    {
    	System.out.print((n%10));
    	if (n)
    		show (n/10);
    }
    	void show ( int n)
    {
    	System.out.print((n%10));
    	if (n)
    		show (n/10);
    	System.out.print((n%10));
    }
  7. Complete the Java code to recursively evaluate the sum: sum = 1 + 1/2 + 1/3 +...+1/n, n ³ 1.

    double sum(int n)		// n>=1
    {
    	if (___________) 
    		return _____________;
    
    	return ______ + sum(______);
    }		


Continue to:  Unit 3  / Prev  / Next