题解 | #牛群的数量计算#
牛群的数量计算
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; } }