题解 | #牛群的数量计算#
牛群的数量计算
https://www.nowcoder.com/practice/dfafaa65a55040b3a4b65418db68949d
题目考察的知识点是:
二进制运算。
题目解答方法的文字分析:
两数相乘,异或可以算出两数相加,但进位是算不到的,两数相与左移就可算出是否进位;然后相加n次,求和即可。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param a int整型
* @return int整型
*/
public int multiply (int n, int a) {
// write code here
if (n == 0 || a == 0) {
return 0;
}
int product = 0;
while (a > 0) {
if ((a & 1) > 0) {
product = add(product, n);
}
n = n << 1;
a = a >> 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;
}
}
#题解#
小天才公司福利 1152人发布