指定被除数dividend和除数divisor两个整数。 要将两个数相除,必须不使用乘法、除法或mod运算符。
返回除数dividend除以除数divisor的商。
样本1:
输入:dividend=10,divisor=3输出:3
样本2:
输入:dividend=7,divisor=-3输出:-2
说明:
被除数和除数都是32位有符号整数。
除数不是0。
假设我们的环境中只能存储32位有符号整数,其数值范围为[ 231,231 ]。 在主题中,如果除法运算的结果溢出,则返回231。
这个问题让我想起同事提到的问题。 有a、b两个变量,在不增加变量的情况下交换a、b两个值。 很简单,因为他们俩有隐藏值a b的和,所以加减运算就很容易解决。
a=a b; b=a - b; b得到a的值a=a - b的话,a得到了原来的b的值,所以很简单吧。
这个问题也可以加减运算,但是使用班次更快。 使用位运算,一个数左移一个等于乘以2,因此除数左移一个等于乘以2。