【发布时间】:2013-05-02 22:09:45
【问题描述】:
我如何在恒定时间内做到这一点(我不想从 a 到 b 迭代)?
// return number of multiples of c in [a,b]
long count_multiples(int a, int b, int c) {
assert(b >= a && c != 0);
// todo
return -1;
}
这个问题看起来很简单,但比看起来更难,因为它有一些极端情况,例如必须处理所有情况(a,b 可以是负数/零,c 也可以是负数,a 可能等于 b 可能等于 c)。结果可能不适合 32 位的一种情况(a = 2^31、b = 2^31-1、c = 1 or -1)
【问题讨论】:
标签: c math integer 32-bit division