代码改变世界

微软面试题:编程实现两个正整数的除法

2012-03-23 22:42  Rollen Holt  阅读(2869)  评论(0编辑  收藏  举报

编程实现两个正整数的除法,当然不能用除法操作符。
// return x/y.
int div(const int x, const int y) {
....
}

 

// return x/y

int div(const int x, const int y) {
int left_num = x;
int result = 0;
while (left_num >= y) {
    int multi = 1;
    while (y * multi <= (left_num >> 1)) {
       multi = multi << 1;
    }
    result += multi;
    left_num -= y * multi;
}
return result;
}

扩展问题:
如果需要测试上面这个函数,需要哪些测试用例?