13-recursive_programming

13-recursive_programming - CSE 143 Lecture 13 Recursive...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
CSE 143 Lecture 13 Recursive Programming reading: 12.2 - 12.3 slides created by Marty Stepp http://www.cs.washington.edu/143/
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Exercise • Write a recursive method pow accepts an integer base and exponent and returns the base raised to that exponent. –Examp le : pow(3, 4)
Background image of page 2
3 pow solution // Returns base ^ exponent. // Precondition: exponent >= 0 public static int pow(int base, int exponent) { if (exponent == 0) { // base case; any number to 0th power is 1 return 1; } else { // recursive case: x^y = x * x^(y-1) return base * pow(base, exponent - 1); } }
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 An optimization • Notice the following mathematical property: 3 12 = 531441 = 9 6 = ( 3 2 ) 6 531441 = ( 9 2 ) 3 = (( 3 2 ) 2 ) 3 – When does this "trick" work? – How can we incorporate this optimization into our pow method? – What is the benefit of this trick if the method already works?
Background image of page 4
5 pow solution 2 // Returns base ^ exponent. // Precondition: exponent >= 0 public static int pow(int base, int exponent) { if (exponent == 0) { // base case; any number to 0th power is 1 return 1; } else if (exponent % 2 == 0) { // recursive case 1: x^y = (x^2)^(y/2) return pow(base * base, exponent / 2); } else { // recursive case 2: x^y = x * x^(y-1) return base * pow(base, exponent - 1); } }
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
6 Exercise • Write a recursive method printBinary that accepts an integer and prints that number's representation in binary (base 2) . –Examp
Background image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 01/04/2011 for the course CSE 143 taught by Professor Sr during the Spring '08 term at University of Washington.

Page1 / 16

13-recursive_programming - CSE 143 Lecture 13 Recursive...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online