l******7 发帖数: 311 | 1 要求不用除号和%
这怎么做啊,尤其是要考虑,这两个数有正有负,还有余数也可能是正是负,因为不知
道余数的定义到底怎样。 |
f*******e 发帖数: 1161 | 2 怀疑用二分法,不断逼近
【在 l******7 的大作中提到】 : 要求不用除号和% : 这怎么做啊,尤其是要考虑,这两个数有正有负,还有余数也可能是正是负,因为不知 : 道余数的定义到底怎样。
|
s*********t 发帖数: 1663 | 3 余数不是必须是正数么。。
我觉得用个循环一点点加上去就行了
【在 l******7 的大作中提到】 : 要求不用除号和% : 这怎么做啊,尤其是要考虑,这两个数有正有负,还有余数也可能是正是负,因为不知 : 道余数的定义到底怎样。
|
f****4 发帖数: 1359 | |
s*********t 发帖数: 1663 | |
g*****u 发帖数: 298 | 6 嗯,可以用减数加倍的方法来加速
【在 s*********t 的大作中提到】 : 减到被除数比除数小位置,被除数即是余数
|
r****o 发帖数: 1950 | 7 这题不能直接用二分查找求商吗?
【在 g*****u 的大作中提到】 : 嗯,可以用减数加倍的方法来加速
|
l******7 发帖数: 311 | 8 但用计算器的时候,可以得到负的余数、、
【在 s*********t 的大作中提到】 : 余数不是必须是正数么。。 : 我觉得用个循环一点点加上去就行了
|
g*****u 发帖数: 298 | 9 用移位应该也可以的。
【在 r****o 的大作中提到】 : 这题不能直接用二分查找求商吗?
|
b******v 发帖数: 1493 | 10 假设两个整数y>x,并且y=n*x+r
那么用每次让x增大两倍的办法,能迅速找到k, 使得2^k*x
然后让y = y-2^k*x,继续上面过程,每次过程相当于从n中去掉一个2^k。
这样,计算的复杂度最坏情形是n的二进制表示里全是1
假设n的二进制有m位,这样的复杂性是(1+2+...+m) = O(m^2) = O((lgn)^2)
【在 l******7 的大作中提到】 : 要求不用除号和% : 这怎么做啊,尤其是要考虑,这两个数有正有负,还有余数也可能是正是负,因为不知 : 道余数的定义到底怎样。
|
d*******d 发帖数: 2050 | 11 循环做减法阿.
【在 l******7 的大作中提到】 : 要求不用除号和% : 这怎么做啊,尤其是要考虑,这两个数有正有负,还有余数也可能是正是负,因为不知 : 道余数的定义到底怎样。
|