LeetCode程序员面试题之递归乘法

2023-02-05 09:36:38

题目:递归乘法。写一个递归函数,不使用*运算符,实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1:输入:A=1,B=10输出:10示例2:输入:A=3,B...

题目:

递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。

示例1:

输入:A = 1, B = 10

php

输出:10

示例2:bkLWrI

输入: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实现递归乘法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!