hw4 - CS 61A Week 4 solutions HOMEWORK: - 1. Start by...

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

View Full Document Right Arrow Icon
Sheet1 Page 1 CS 61AWeek 4 solutions HOMEWORK: --------- 1. Start by tracing it out (mentally or online): (fact 5) (iter 1 1) (iter 1 2) (iter 2 3) (iter 6 4) (iter 24 5) (iter 120 6) What jumps out is that the first argument to ITER is always the factorial of something. Of what? One less than the second argument. So the invariant is product = (counter-1)! 2. Tracing again: (fact 5) (helper 1 5) (helper 5 4) (helper 20 3) (helper 60 2) (helper 120 1) (helper 120 0) This time, RESULT isn't the factorial of anything until the end. The invariant is a little harder to find, but at each step, the work still undone is the factorial of COUNTER, so the invariant turns out to be n! = result * counter! 3. Trace: (pigl 'scheme) (pighelp 'scheme) (pighelp 'chemes) (pighelp 'hemesc) (pighelp 'emesch) What's invariant is that all of these words have the same translation into Pig Latin: (pigl wd) = (pigl wrd) 4. In question 3, we had the name WD for our original argument, and the name WRD for the current argument to the helper. In the simpler procedure,
Background image of page 1

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

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 09/14/2009 for the course PEIS 100 taught by Professor Mckenzie during the Spring '08 term at University of California, Berkeley.

Page1 / 4

hw4 - CS 61A Week 4 solutions HOMEWORK: - 1. Start by...

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

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