题解 | #牛群的数量计算#
牛群的数量计算
https://www.nowcoder.com/practice/dfafaa65a55040b3a4b65418db68949d
考察的知识点:位运算;
解答方法分析:
- 定义一个变量
sum,用来保存所有牧场的牛的数量总和。 - 使用循环遍历每个牧场的牛的数量。
- 对于每个牧场的牛的数量,使用左移操作将其乘以2的幂。例如,对于第一个牧场的牛的数量a,将其左移0位相当于不变,即a * (2^0) = a;对于第二个牧场的牛的数量a,将其左移1位相当于乘以2,即a * (2^1) = 2a;以此类推。
- 将每个牧场的牛的数量累加到
sum中。 - 循环结束后,
sum即为所有牧场的牛的数量总和。
所用编程语言:C++;
完整编程代码:↓
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param a int整型
* @return int整型
*/
int multiply(int n, int a) {
int sum = 0;
int power = 0;
while (n > 0) {
if (n & 1) {
sum += a << power;
}
power++;
n >>= 1;
}
return sum;
}
};
