int divide(int m, int n) {
int u, res = 0;
bool neg = false;
if (n == 0) return NaN;
if (m = 0; k--)
if (m >= n << k)
m -= n << k, res += 1 << k;
return neg ? -res : res;
}
3
Anónimo
22 may 2012
public class Solution {
public int divide(int dividend, int divisor) {
// Start typing your Java solution below
// DO NOT write main() function
if (divisor == 0) {
return -1;
} else if (dividend == 0 || divisor == 1) {
return dividend;
} else if (dividend == divisor) {
return 1;
} else if (dividend == -divisor) {
return -1;
} else if (divisor == Integer.MIN_VALUE) {
return 0;
}
boolean neg = false;
if ((dividend 0) || (dividend > 0 && divisor = 0; i--) {
if ((divisor dividend) {
continue;
}
q |= (1 << i);
dividend -= (divisor << i);
}
q += extra;
return neg ? -q : q;
}
}
Anónimo
25 ago 2013
private static int Div2(int dividend, int divisor, int multi) {
int remainder = dividend - (multi * divisor);
if (remainder > 0) {
return Div2(remainder, divisor, multi * 2) + multi;
} else if (remainder == 0) {
return multi;
}else {
if (multi > 1) {
return Div2(dividend, divisor, multi / 2);
} else {
return 0;
}
}
}
Anónimo
23 abr 2011
Let's assume we only need to worry about int.
public static int Div(int divisor, int dividend) {
if (divisor==0) {
return -1;//let's not worry about it for now
}
int pDividend = Math.abs(dividend);
int pDivisor = Math.abs(divisor);
int quotient = 0;
while(pDividend>pDivisor) {
pDividend-=pDivisor;
quotient++;
}
quotient = (divisor>0&÷nd0)? quotient*-1:quotient;
System.out.println(dividend+"/" + divisor +"=" + quotient + " (abs)mod:" + pDividend);
return quotient;
}
Anónimo
31 mar 2011
Keep subtracting divisor from dividend while it is smaller than it.