题目描述
小康最近沉迷王者荣耀,他最喜欢用猴子了,但是他有强迫症。假设猴子每使用一次技能可以打死一半的小兵,但是如果当前的小兵数为奇数,那么他就必须先单独杀死其中一个,使小兵数为偶数,再使用技能。那么现在请问,杀光N个小兵需要单独杀死其中多少个小兵?
输入
输入数据首先给出一个整数C,表示测试组数。
然后是C组数据,每组包含一个正整数n (n<100000)。
输出
对应每组数据,请输出一个整数,表示猴子单独杀死小兵的个数,每组输出占一行。
样例输入
2 5 10
样例输出
2 2
来源
【AC代码】:
import java.util.Arrays;
import java.util.Scanner;
import java.util.logging.MemoryHandler;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int c = sc.nextInt();
int s[] = new int[c];
int i = 0;
while (c > 0) {
s[i] = sc.nextInt();
c--;
i++;
}
for (int j = 0; j < i; j++) {
int sum = 0;
while (s[j] != 0) {
if (s[j] % 2 == 0)
s[j] /= 2;
else {
sum++;
s[j] = s[j] - 1;
}
}
System.out.println(sum);
}
}
}