LeetCode程序员面试题之递归乘法
作者:灰太狼_cxh
在Java中,递归乘法是一种简单而有效的方法,可以用来计算两个数字的乘积。它的基本思想是:如果第一个数字是0,则乘积为0;如果第一个数字是1,则乘积为第二个数字;其他情况,则通过将第一个数字减1,并将第二个数字与自身相乘,来实现递归乘法。
题目:
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
示例1:
输入:A = 1, B = 10
输出:10
示例2:
输入:A = 3, B = 4
输出:12
代码实现:
public int multiply(int A, int B) { int min = Math.min(A, B); int max = Math.max(A, B); int ans = 0; for (int i = 0; min != 0; i++) { if ((min & 1) == 1) { ans += max << i; } min >>= 1; } return ans; }
到此这篇关于LeetCode程序员面试题之递归乘法的文章就介绍到这了,更多相关Java实现递归乘法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!