h*i
3 楼
这个我也想到了 不过题目要求不能用乘法。 x*n>m不合要求阿。
c*p
5 楼
对于x/y,
先找到k,使2^k<=x<2^(k+1),
x -= 2^k
然后依次比较x和2^(k-1)...2^0至x为零为止。
结果的每一位,如果够减就是1,不够减就是0【 在 happylii (小马哥) 的大作中提到
先找到k,使2^k<=x<2^(k+1),
x -= 2^k
然后依次比较x和2^(k-1)...2^0至x为零为止。
结果的每一位,如果够减就是1,不够减就是0【 在 happylii (小马哥) 的大作中提到
h*i
6 楼
照着写了个code 不过放在leetcode上测试连small set都超时了。那位给贴个效率高的
,让我学习一下。
int Multiply(int x, int y)
{
bool neg = (x>0&&y<0)||(x<0&&y>0);
y = abs(y);
int res = 0;
int orgy = y;
while(y>1)
{
res += x << 1;
y-=2;
}
if(y==1)
res+=x;
if(neg&&orgy<0)
return -res;
else
return res;
}
int divide(int dividend, int divisor) {
int res = dividend;
int step = dividend;
while(1)
{
int product = Multiply(res,divisor);
if(step>1)
step=step>>1;
if(product>dividend)
{
res-=step;
}
else if((product+divisor) res+=step;
else
break;
}
return res;
}
,让我学习一下。
int Multiply(int x, int y)
{
bool neg = (x>0&&y<0)||(x<0&&y>0);
y = abs(y);
int res = 0;
int orgy = y;
while(y>1)
{
res += x << 1;
y-=2;
}
if(y==1)
res+=x;
if(neg&&orgy<0)
return -res;
else
return res;
}
int divide(int dividend, int divisor) {
int res = dividend;
int step = dividend;
while(1)
{
int product = Multiply(res,divisor);
if(step>1)
step=step>>1;
if(product>dividend)
{
res-=step;
}
else if((product+divisor)
else
break;
}
return res;
}
p*2
7 楼
int divide(int dividend, int divisor) {
if (divisor == 0)
throw new ArithmeticException();
int k = 0;
long a = dividend;
long b = divisor;
a = Math.abs(a);
b = Math.abs(b);
boolean neg = (dividend & 1 << 31 ^ divisor & 1 << 31) != 0;
while (b << k <= a)
k++;
int r = 0;
for (int i = k; i >= 0; i--) {
if (b << i > a)
continue;
else {
r |= 1 << i;
a -= b << i;
}
}
return neg ? -r : r;
}
if (divisor == 0)
throw new ArithmeticException();
int k = 0;
long a = dividend;
long b = divisor;
a = Math.abs(a);
b = Math.abs(b);
boolean neg = (dividend & 1 << 31 ^ divisor & 1 << 31) != 0;
while (b << k <= a)
k++;
int r = 0;
for (int i = k; i >= 0; i--) {
if (b << i > a)
continue;
else {
r |= 1 << i;
a -= b << i;
}
}
return neg ? -r : r;
}
h*i
8 楼
刚才在oj上试了下,还是超时了。。。。
【在 p*****2 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: int divide(int dividend, int divisor) {
: if (divisor == 0)
: throw new ArithmeticException();
: int k = 0;
: long a = dividend;
: long b = divisor;
: a = Math.abs(a);
: b = Math.abs(b);
: boolean neg = (dividend & 1 << 31 ^ divisor & 1 << 31) != 0;
: while (b << k <= a)
【在 p*****2 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: int divide(int dividend, int divisor) {
: if (divisor == 0)
: throw new ArithmeticException();
: int k = 0;
: long a = dividend;
: long b = divisor;
: a = Math.abs(a);
: b = Math.abs(b);
: boolean neg = (dividend & 1 << 31 ^ divisor & 1 << 31) != 0;
: while (b << k <= a)
c*p
11 楼
http://www.mitbbs.com/mitbbs_article.php?board=JobHunting&id=31
【在 h******i 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 刚才在oj上试了下,还是超时了。。。。
【在 h******i 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 刚才在oj上试了下,还是超时了。。。。
相关阅读
如何在text file里找frequently occurring patterns?Nike研发的待遇怎么样?Question regarding employment application form大家都在做carrer cup,问个白痴级的问题夏天面试要穿西服外套,打领带吗?谢谢。一个有趣的公司的工作机会, bay area, CA想买个礼物答谢别人的推荐,请给意见Oracle除了base salary就不给别的了么?(Software Engineer II)用skype面试[IBM CSTL 诚聘]Developer for zOS Unicode System Services明天面试,求个祝福该死的移民局不是存心恶心人吗?国内保险公司精算岗招聘optAnyone interviewed with Capital One and got response after online test?求助 network performance engineer 技术面试的参考资料加州ACCOUNTANT的prevailing wage这么高么?周五电面 dream company dream positionContractor 只干了几天就收到另一个Permanent job offer怎么办求教: 什么是export compliance issues的政策?