29. 两数相除

匿名 (未验证) 提交于 2019-12-03 00:05:01

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

返回被除数 dividend 除以除数 divisor 得到的商。

示例 1:

输入: dividend = 10, divisor = 3
输出: 3
示例 2:

输入: dividend = 7, divisor = -3
输出: -2
说明:

被除数和除数均为 32 位有符号整数。
除数不为 0。

/* 解题思路: 因为输入的都是int型,比如被除数是-2147483648,在int范围内,当除数是-1时, 结果就超出了int范围,需要返回INT_MAX,所以对于这种情况我们就在开始用if判定, 将其和除数为0的情况放一起判定,返回INT_MAX */ #include<iostream> using namespace std; class Solution { public: 	int divide(int dividend, int divisor) 	{  		if (dividend <= -2147483648 && divisor == -1) 			return 2147483647; 		int re = dividend / divisor; 		return re;  	} }; int main(){ 	int d; 	int c; 	cin >> d; 	cin >> c; 	int result = Solution().divide(d, c); 	cout << result << endl; 	system("pause"); 	return 0;  }

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!