美文网首页
Java算法题:两整数相除

Java算法题:两整数相除

作者: 会九卦的兔子 | 来源:发表于2018-08-16 23:11 被阅读0次

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

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

示例 1:

输入:dividend = 10, divisor = 3输出:3

示例 2:

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

说明:

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

除数不为 0。

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。

这道题让我想起同事提到的一道题:有 a , b 两个变量,在不增加变量的情况下,把 a , b 两个值交换。很简单的他们两个有一个隐藏值 a+b 的和,那么用加减法就能简单解决了。

  a = a + b; b = a - b ; 则 b 得到 a 的值;a = a - b 则 a 得到了原始b的值了 简单吧。

这道题也可以用加减法来做,但是用移位更快, 利用位运算,一个数左移一位等价于乘以2,所以除数左移一位等于乘以2;

相关文章

  • Java算法题:两整数相除

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

  • 辗转相除法,最大公约数,最小公倍数

    辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公约数的算法。 算法描...

  • 最大公约数

    . 欧几里德算法和扩展欧几里德算法 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。...

  • C++ 辗转相除法 - 求最大公约数

    辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知...

  • 算法-辗转相除法

    算法:辗转相除法(欧几里得算法) GCD递归定理 辗转相除法算法概述 辗转相除法伪代码 辗转相除法代码实现 对于两...

  • 欧几里德与扩展欧几里德算法

    欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,...

  • 扩展欧几里得算法

    欧几里得算法 文中用 表示求模运算, 表示整除, 比如 欧几里德算法(称辗转相除法),用于计算两个整数a, b的...

  • 欧几里得算法

    欧几里得算法又称辗转相除法,用于求两个非负整数的最大公约数。

  • 欧几里得算法(辗转相除法)最大公约数

    欧几里得算法原理 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。gcd(a,b)=gcd(b,a...

  • 推荐系统基础-常用相似度算法

    推荐系统中计算相似度常用的方法 欧几里得算法(欧几里得距离) 欧几里德算法又称辗转相除法,用于计算两个正整数a,b...

网友评论

      本文标题:Java算法题:两整数相除

      本文链接:https://www.haomeiwen.com/subject/wzdabftx.html