class Solution { public: int divide(int dividend, int divisor) { if(!divisor) { return 0; } int r = 0; bool sign = (dividend > 0 && divisor > 0) || (dividend < 0 && divisor < 0)? true: false; long long dvend = dividend; dvend = abs(dvend); long long dvsor = divisor; dvsor = abs(dvsor); string num = to_string(dvend); long long digits = 0; string result; for(int i = 0; i < num.length(); ++i) { digits += num[i] - '0'; if(digits >= dvsor) { long long r = 0; long long total = 0; long long temp = digits; while (total + dvsor <= digits) { total += dvsor; r++; } for(int j = 0; j < r; j++) { digits -= dvsor; } result += r + '0'; } else { result += '0'; } int base = digits; for(int j = 0;j < 9; j++) { digits += base; } } long long value; istringstream buffer(result); buffer >> value; return sign? value: -value; } };
4/05/2014
Leetcode -- Divide Two Integers
This one is hard....
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment