题解 | #牛群的数量计算#
牛群的数量计算
https://www.nowcoder.com/practice/dfafaa65a55040b3a4b65418db68949d
题目考察的知识点
考察二进制亦或运算实现乘法
题目解答方法的文字分析
二进制亦或实现乘法可以参看这一篇 https://blog.csdn.net/wanqian11k/article/details/79090478
本题解析所用的编程语言
使用Java代码解答
完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param a 牧场
* @param b 牛
* @return 乘积
*/
public int multiply (int a, int b) {
if (a == 0 || b == 0) {
return 0;
}
int product = 0;
while (b > 0) {
if ((b & 1) > 0) {
product = add(product, a);
}
a = a << 1;
b = b >> 1;
}
return product;
}
// 迭代累加
public int add(int num1, int num2){
int sum = num1 ^ num2;
int carry = (num1 & num2) << 1;
while(carry != 0){
int a = sum;
int b = carry;
sum = a ^ b;
carry = (a & b) << 1;
}
return sum;
}
}
