题意理解
两数相除。
问题分析
直接除不行
a/b = e^( ln ( a / b ) ) = e ^ ( ln a - ln b),,触发改乘法和减法。
其他
链接
int divide(int dividend, int divisor) {
if (dividend == 0) return 0; //被除数为0
long long _dividend = fabs((long long)dividend); //被除数绝对值
long long _divisor = fabs((long long)divisor); //除数绝对值
long long res = exp(log(_dividend) - log(_divisor)); //除法公式
cout << "res " << res << endl;
if ((dividend < 0) ^ (divisor < 0)) //被除数 除数不同时小于0
{
cout << "change signal" << endl;
res = - res; //变符号
}
if ( res > INT_MAX) res = INT_MAX; // 超过最大值,取INT最大值
return res;
}