当前位置 : 主页 > 编程语言 > java >

#yyds干货盘点# LeetCode程序员面试金典: 递归乘法

来源:互联网 收集:自由互联 发布时间:2023-02-04
题目: 递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 示例1: 输入:A = 1, B = 10 输出:10 示例2: 输入:A = 3, B

题目:

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

示例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; }

上一篇:Java两大工具库:Commons和Guava(5)
下一篇:没有了
网友评论