How to Multiply Two Positive Integers Using Recursion | Comp Sci Questions

  • Thread starter Thread starter courtrigrad
  • Start date Start date
  • Tags Tags
    comp sci
AI Thread Summary
A recursive method to multiply two positive integers using repeated additions can be defined as a*b = a + (a * (b-1)). The provided code has errors, particularly in the recursive call where it incorrectly adds the arguments. The correct implementation should ensure that the recursive function is called with two parameters. Additionally, for the hello method, the output formatting needs correction; it should use concatenation instead of a comma. Overall, the discussion highlights the importance of proper syntax and logic in recursive function implementation.
courtrigrad
Messages
1,236
Reaction score
2
Hello all

If we want to write a recursive method that multiplies two positive integers using repeated additions, we know that: a\times b = a + (a\times(b-1)) Would this be correct:

Code:
// pre: a and b are positive
// post: returning the product of a and b.
public int mult(int a, int b )

a*b = a +(a * (b-1))
if( b ==1)
return(a);
else
  return mult(a + a*(b-1)))


Also if you had:

Code:
public void hello(int n )
{
   System.out.println("hello n = ",n);
   if(n > 1)
      hello(n-1);
   System.out.println("goodbye n = ", n);

How would you find the output when a 3 is passed? I got a bumch of hellos and goodbyes, but I got it wrong


Thanks :smile:
 
Physics news on Phys.org
are these right?
 
courtrigrad said:
Code:
// pre: a and b are positive
// post: returning the product of a and b.
public int mult(int a, int b )

a*b = a +(a * (b-1))

The above line is unnecessary.

courtrigrad said:
Code:
if( b ==1)
return(a);
else
  return mult(a + a*(b-1)))

Your second return line here is wrong. You're calling mult which should have two arguments...
 
courtrigrad said:
Also if you had:

Code:
public void hello(int n )
{
   System.out.println("hello n = ",n);
   if(n > 1)
      hello(n-1);
   System.out.println("goodbye n = ", n);

How would you find the output when a 3 is passed? I got a bumch of hellos and goodbyes, but I got it wrong


Thanks :smile:

I think it should be:
System.out.println("hello n="+n);

Instead of a comma you need a "+".
 
Thread 'Variable mass system : water sprayed into a moving container'
Starting with the mass considerations #m(t)# is mass of water #M_{c}# mass of container and #M(t)# mass of total system $$M(t) = M_{C} + m(t)$$ $$\Rightarrow \frac{dM(t)}{dt} = \frac{dm(t)}{dt}$$ $$P_i = Mv + u \, dm$$ $$P_f = (M + dm)(v + dv)$$ $$\Delta P = M \, dv + (v - u) \, dm$$ $$F = \frac{dP}{dt} = M \frac{dv}{dt} + (v - u) \frac{dm}{dt}$$ $$F = u \frac{dm}{dt} = \rho A u^2$$ from conservation of momentum , the cannon recoils with the same force which it applies. $$\quad \frac{dm}{dt}...

Similar threads

Replies
7
Views
2K
Replies
12
Views
2K
Replies
11
Views
2K
Replies
1
Views
2K
Replies
17
Views
3K
Replies
5
Views
3K
Replies
7
Views
3K
Back
Top