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