s********k 发帖数: 6180 | 1 应该算是经典题,不过今天就想出一个最笨的办法,哪位大侠指点下 |
B******5 发帖数: 4676 | |
H*****n 发帖数: 336 | 3 如果是2的n倍,可以bit shift
【在 s********k 的大作中提到】 : 应该算是经典题,不过今天就想出一个最笨的办法,哪位大侠指点下
|
s********k 发帖数: 6180 | 4 是任何数,我也刚开始想用bit shift,后来想到不是2倍数,这点比较难
【在 H*****n 的大作中提到】 : 如果是2的n倍,可以bit shift
|
d*****t 发帖数: 41 | 5 用binary search在0~n的区间里找一个a使 a*bn, 从而求得n%b? |
s********k 发帖数: 6180 | 6 要这么麻烦?我再想想
【在 d*****t 的大作中提到】 : 用binary search在0~n的区间里找一个a使 a*bn, 从而求得n%b?
|
B******l 发帖数: 262 | 7 int mod(int n, int b)
{
int i = n/b;
return n - i*b;
}
是这个么?
【在 s********k 的大作中提到】 : 应该算是经典题,不过今天就想出一个最笨的办法,哪位大侠指点下
|
a***c 发帖数: 2443 | 8 for positive int a and b:
int quotient=a/b
int mod = a - quotient*b
but you have to consider the cases when either a or b is negative.
bitwise AND if b is a power of 2.
【在 s********k 的大作中提到】 : 应该算是经典题,不过今天就想出一个最笨的办法,哪位大侠指点下
|
b******e 发帖数: 925 | 9 这个应该可以了吧?
【在 B******l 的大作中提到】 : int mod(int n, int b) : { : int i = n/b; : return n - i*b; : } : 是这个么?
|
g*****e 发帖数: 282 | 10 不是不断地用小的数减大的数么?注意负数的情况就可以了。或者我理解错题目了?=)
【在 s********k 的大作中提到】 : 是任何数,我也刚开始想用bit shift,后来想到不是2倍数,这点比较难
|