divide-two-integers

来源:互联网 发布:淘宝商品加入公益宝贝 编辑:程序博客网 时间:2024/05/21 10:21

题目:

Divide two integers without using multiplication, division and mod operator.

程序:

class Solution {public:    int divide(int dividend, int divisor) {        long long a = abs((long long)dividend); //负数可以溢出        long long b = abs((long long)divisor);         int finalcount=0;        while(a >= b){           int count = 1;            long sum = b;            while(sum + sum <= a){ //普通的减法会超时                sum += sum;                count += count;            }            a -= sum;            finalcount += count;        };        return (dividend>>31 ^ divisor>>31)? -finalcount:finalcount;     }};
原创粉丝点击