Hey. I'm doing J5 2005, indirect recursion, really a tough cookie.
I've solved the problem but I'm having trouble trying to understand another person's solution from the http://access.mmhs.ca/ccc/index.htm website.
Here's the PDF, if you haven't seen it.
http://www.cemc.uwaterloo.ca/ccc/2005/junior/bananas.pdf
Here's the full code.
http://access.mmhs.ca/ccc/2005/2005j5bananas.txt
The part that I don't understand from the person's code is this part
Quote:
var found : boolean := false
for i : 2 .. length (s) - 1
found := found or
(aWord (s (1 .. i - 1)) and
s (i) = "N" and
monkeyWord (s (i + 1 .. *)))
end for
result found
First, so far from what I think I understand,
found equals false or true, true, if those 3 conditions are true.
If those 3 conditions are true once, then found equals true for the
rest of the for loop.
What I don't understand is the for loop. What's it there for?
I tried running without it, but the solution doesn't work and I can't understand how it works.
Could someone explain to me that part of the code? Why it's there, why is it doing what's it doing, why is there a for loop?
I've banged my head alot on it.
So far what I think it's unnecessary. Obviously I'm wrong though.
I think running the first 3 conditions is satisfactory enough to find out if the word is a monkey language word.
E.g.
ANBBASS
A is the aword, satisfies the 1st condition
N satisfies the second
and BBASS satisfies the 3rd
*EDIT* I GET IT NOW