Difference between revisions of "TADM2E 1.28"

From Algorithm Wiki
Jump to: navigation, search
(Recovering wiki)
Line 11: Line 11:
 
   return quotient;
 
   return quotient;
 
}
 
}
 +
</pre>
 +
 +
----
 +
-- [[User:Vale.rho|Vale.rho]] 00:02, 25 Feb 2015
 +
 +
Initially I also thought the previous solution, but the final sentence of the text made me suspicious ("Find a fast way to do it."), so this is my solution:
 +
 +
<pre>
 +
def divide(num, den):
 +
quotient = 0
 +
quot_accumulator = 1
 +
den_accumulator = den
 +
 +
while num >= den:
 +
if num < den_accumulator:
 +
den_accumulator = den
 +
quot_accumulator = 1
 +
 +
num = num - den_accumulator
 +
quotient = quotient + quot_accumulator
 +
quot_accumulator = quot_accumulator + quot_accumulator
 +
den_accumulator = den_accumulator + den_accumulator
 +
 +
return quotient
 
</pre>
 
</pre>

Revision as of 23:11, 24 February 2015

// Note: This only works for positive values!
int divide(int numerator, int denominator) {
  int quotient = 0;

  while(numerator >= denominator) {
      numerator -= denominator;
      quotient++;
  }

  return quotient;
}

-- Vale.rho 00:02, 25 Feb 2015

Initially I also thought the previous solution, but the final sentence of the text made me suspicious ("Find a fast way to do it."), so this is my solution:

def divide(num, den):
	quotient = 0
	quot_accumulator = 1
	den_accumulator = den

	while num >= den:
		if num < den_accumulator:
			den_accumulator = den
			quot_accumulator = 1

		num = num - den_accumulator
		quotient = quotient + quot_accumulator
		quot_accumulator = quot_accumulator + quot_accumulator
		den_accumulator = den_accumulator + den_accumulator
	
	return quotient