由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 不用乘号怎么做乘法
相关主题
Google面试问题某银行的笔试题
大家看看这几道google面试题怎么做?关于K个sorted数组中第n大数的问题
leetcode上大数乘代码FB面经~
CS问个连续乘法的面试题~感觉leetcode上的题
How to multiply two floats using only summationFacebook面经
攒人品 发个G电面报google nyc offer,并分享面经
吐槽说下昨天一个小公司的二面fail在Fox电视台实习
发发我自己的Bloomberg的面经这种情况走不走人?不走人的话跟谁?
相关话题的讨论汇总
话题: int话题: product话题: while话题: res话题: return
进入JobHunting版参与讨论
1 (共1页)
s**********r
发帖数: 8153
1
不是一个一个加哦。。。
m*******i
发帖数: 8711
2
bit shifting
r**h
发帖数: 1288
3
不考虑负数的话
def multiply(a, b):
res, c = 0, a
while b>0:
if b & 1 == 1:
res += c
b >>= 1
c <<= 1
return res
考虑负数的话先取模再计算最后判断符号即可
a******1
发帖数: 2340
4
能用log么?
a * b = exp(log(a) + log(b)), 异号就加负号
b******7
发帖数: 92
5
就是leetcode pow(a,b)的变体

【在 s**********r 的大作中提到】
: 不是一个一个加哦。。。
z****e
发帖数: 54598
6
<<1 == *2
>>1 == /2
a*b = a*2*b/2 ...
s**********r
发帖数: 8153
7
冥冥之中觉得和那个有点像,但怎么也搞不出来。

【在 b******7 的大作中提到】
: 就是leetcode pow(a,b)的变体
s**********r
发帖数: 8153
8
你解释的太好了。2行。全明白了。

【在 z****e 的大作中提到】
: <<1 == *2
: >>1 == /2
: a*b = a*2*b/2 ...

u*****o
发帖数: 1224
9
IF考虑到是b最后除到1的时候,但再下一步呢?除到0时RESULT没有ASSIGN VALUE啊
而且为啥要用C呢?直接用a不行吗?

【在 r**h 的大作中提到】
: 不考虑负数的话
: def multiply(a, b):
: res, c = 0, a
: while b>0:
: if b & 1 == 1:
: res += c
: b >>= 1
: c <<= 1
: return res
: 考虑负数的话先取模再计算最后判断符号即可

z****e
发帖数: 54598
10
你要额外判断一个%2
a%2 == a&1

【在 s**********r 的大作中提到】
: 你解释的太好了。2行。全明白了。
相关主题
攒人品 发个G电面某银行的笔试题
吐槽说下昨天一个小公司的二面fail关于K个sorted数组中第n大数的问题
发发我自己的Bloomberg的面经FB面经~
进入JobHunting版参与讨论
s**********r
发帖数: 8153
11
这里边 b 不能是int了吧?b是double? float?
b不能被2整除咋整。

【在 z****e 的大作中提到】
: <<1 == *2
: >>1 == /2
: a*b = a*2*b/2 ...

z****e
发帖数: 54598
12
见楼上
如果是float的话,那就只能转成string操作了
估计不会面这种题,转成string之后就是实现题
要先做string大数加法,然后再在这个基础之上做string大数乘法
同时还要实现99乘法口诀表

【在 s**********r 的大作中提到】
: 这里边 b 不能是int了吧?b是double? float?
: b不能被2整除咋整。

s**********r
发帖数: 8153
13
嗯嗯,好的,谢谢咯!

【在 z****e 的大作中提到】
: 见楼上
: 如果是float的话,那就只能转成string操作了
: 估计不会面这种题,转成string之后就是实现题
: 要先做string大数加法,然后再在这个基础之上做string大数乘法
: 同时还要实现99乘法口诀表

u*****o
发帖数: 1224
14
这个判断是每个LOOP都要的,还是只在最后一步b除到1的时候呢?
比如14*7
如果不每个LOOP考虑一下的话根本加不到啊
14×7 下一步是 28×3 下一步是 56×1.。。每一步都丢了一个a, 如果到了b=1的时候
再考虑b&1, 是不是加不到原数了呢?

【在 z****e 的大作中提到】
: 你要额外判断一个%2
: a%2 == a&1

z****e
发帖数: 54598
15
我刚出去邮局拿东西时候想了下
我觉得还是直接放在loop里做判断好了
while(b>0){
if(b==1)...
else...
}
这样就可以抛掉&1运算
如果想用上这个,就先算一下
然后对自身做一个一层递归就好了

【在 u*****o 的大作中提到】
: 这个判断是每个LOOP都要的,还是只在最后一步b除到1的时候呢?
: 比如14*7
: 如果不每个LOOP考虑一下的话根本加不到啊
: 14×7 下一步是 28×3 下一步是 56×1.。。每一步都丢了一个a, 如果到了b=1的时候
: 再考虑b&1, 是不是加不到原数了呢?

w**********o
发帖数: 140
16

a > b

【在 r**h 的大作中提到】
: 不考虑负数的话
: def multiply(a, b):
: res, c = 0, a
: while b>0:
: if b & 1 == 1:
: res += c
: b >>= 1
: c <<= 1
: return res
: 考虑负数的话先取模再计算最后判断符号即可

j**7
发帖数: 143
17
public static int multiple(int a, int b) {
int product = 0;
while (b > 0) {
if ((b & 1) == 1) {
product += a;
}
a = a << 1;
b = b >> 1;
}
return product;
}
B*****g
发帖数: 34098
18
这个我都看懂了,赞一个

【在 z****e 的大作中提到】
: <<1 == *2
: >>1 == /2
: a*b = a*2*b/2 ...

k*****o
发帖数: 1972
19
nice,
小学算术步骤

【在 j**7 的大作中提到】
: public static int multiple(int a, int b) {
: int product = 0;
: while (b > 0) {
: if ((b & 1) == 1) {
: product += a;
: }
: a = a << 1;
: b = b >> 1;
: }
: return product;

1 (共1页)
进入JobHunting版参与讨论
相关主题
这种情况走不走人?不走人的话跟谁?How to multiply two floats using only summation
请问一道google面试题攒人品 发个G电面
SDET面试准备吐槽说下昨天一个小公司的二面fail
在Java,怎样做floating point number 的比较?发发我自己的Bloomberg的面经
Google面试问题某银行的笔试题
大家看看这几道google面试题怎么做?关于K个sorted数组中第n大数的问题
leetcode上大数乘代码FB面经~
CS问个连续乘法的面试题~感觉leetcode上的题
相关话题的讨论汇总
话题: int话题: product话题: while话题: res话题: return