• Post Reply Bookmark Topic Watch Topic
  • New Topic

Understanding recursive method. Help!  RSS feed

 
Werner Holt
Ranch Hand
Posts: 37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator



Strangely, the person who wrote this method was me, and it is working(it's purpose is to return the product of n odd numbers). My problem is, I do not understand how exactly works. What goes after what, how exactly the values are caluclated and multiplied and what happens in the return after n==1.
Sorry if I am asking for too much, but can someone explain this to me in detail?
I will be very grateful.
Werner
 
Piet Souris
Master Rancher
Posts: 2041
75
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi Werner,

well, there is not so much to explain. Just write out in ful what happens
when you issue 'multiplyOdds(3)'.

When n = 3 we get
(since 3 != 1):
(2 * 3 - 1) * multiplyOdds(2) = 5 * multiplyOdds(2) =
(since 2 != 1):
5 * (2 * 2 - 1) * multiplyOdds(1) = 5 * 3 * multiplyOdds(1) =
(since n == 1):
5 * 3 * 1
= 15

Greetz,
Piet
 
Carey Brown
Saloon Keeper
Posts: 3309
46
Eclipse IDE Firefox Browser Java MySQL Database VI Editor Windows
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When confronted with a sticky recursion problem I like to put print statements that give me an indented output. Something like this. This may or may not help you but it's a handy trick.

Output
 
Tushar Goel
Ranch Hand
Posts: 934
4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You may check this recently post on recursion
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!