博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-二分法-两数相除
阅读量:3961 次
发布时间:2019-05-24

本文共 1004 字,大约阅读时间需要 3 分钟。

在这里插入图片描述

在这里插入图片描述

class Solution {
public int divide(int dividend, int divisor) {
// 被除数 除数 if(divisor == -1 && dividend == Integer.MIN_VALUE) return Integer.MAX_VALUE; // 溢出 int sign = 1; if((dividend > 0 && divisor < 0)||(dividend < 0 && divisor > 0)) sign = -1; // if(divisor == 1) return dividend; // if(divisor == -1) return -dividend; int a = dividend>0 ? -dividend : dividend; int b = divisor>0 ? -divisor : divisor; // 都改为负号是因为int 的范围是[2^31, 2^31-1],如果a是-2^32,转为正数时将会溢出 //System.out.println(a + " " + b); if(a > b) return 0; int ans = div(a,b); return sign == -1 ? -ans : ans; } int div(int a, int b) {
if(a > b) return 0; int count = 1; int tb = b; while(tb+tb >= a && tb+tb < 0){
// 溢出之后不再小于0 tb += tb; count += count; //System.out.println(tb + " " + count + " " + count*b); } return count+div(a-tb,b); }}

转载地址:http://oohzi.baihongyu.com/

你可能感兴趣的文章
[连载] Socket 深度探索 4 PHP (一)
查看>>
[无线] Android 系统开发学习杂记
查看>>
[无线] 浅析当代 LBS 技术
查看>>
[杂感] 缅怀乔布斯
查看>>
[无线] 让Android支持cmwap上网
查看>>
[无线] AndroidManifest.xml配置文件详解
查看>>
[移动] Mosquitto简要教程(安装/使用/测试)
查看>>
[HTML5] 关于HTML5(WebGL)的那点事
查看>>
自我反思
查看>>
初识网络编程
查看>>
东北赛选拔教训
查看>>
hash
查看>>
涨姿势了:求两个分子的最大公倍数
查看>>
快速幂
查看>>
vector.reserve and resize &&vector与map结合
查看>>
最长公共子序列
查看>>
计算几何
查看>>
求解方程
查看>>
太弱了。。水题
查看>>
位运算(含应用)
查看>>