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

简介:

编程实现两个正整数的除法,当然不能用除法操作符。 
// 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;
}

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

目录
相关文章
|
算法 搜索推荐 程序员
C语言第十二练——计算两个正整数的最小公倍数和最大公因数
C语言第十二练——计算两个正整数的最小公倍数和最大公因数
107 0
|
7月前
|
算法
【一刷《剑指Offer》】面试题 11:数值的整数次方
【一刷《剑指Offer》】面试题 11:数值的整数次方
|
7月前
|
C语言
【汇编语言实战】输入2个整数求最大公约数
【汇编语言实战】输入2个整数求最大公约数
50 0
|
算法 C语言
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
122 0
|
7月前
|
算法 C++
试除法求约数:深入分析与实践
试除法求约数:深入分析与实践
58 3
|
算法 搜索推荐 程序员
C语言第十三练——输入一个正整数,判断这个数是否是素数
C语言第十三练——输入一个正整数,判断这个数是否是素数
131 0
|
C语言
C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)-2
思路二: 总体思路: 因为偶数除了 2 都不是素数,且题目范围中没有 2 , 所以可以只生成 100~200 之间的奇数,可以排除一半的数字, 效率提升一倍。
119 0
|
C语言
C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)-1
思路一:使用试除法 总体思路: (一). 使用外循环:生成 100~200 之间的数。 (二). 设置内循环:生成 2 ~ i-1 的数。
126 0
|
测试技术 C语言
【C语言】判断一个数是否为素数(素数求解的N种境界)(上)
【C语言】判断一个数是否为素数(素数求解的N种境界)
245 0
|
存储 算法
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法
142 0
【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法