1. 程式人生 > >YTU OJ 3227: 猴子打小兵

YTU OJ 3227: 猴子打小兵

題目描述

小康最近沉迷王者榮耀,他最喜歡用猴子了,但是他有強迫症。假設猴子每使用一次技能可以打死一半的小兵,但是如果當前的小兵數為奇數,那麼他就必須先單獨殺死其中一個,使小兵數為偶數,再使用技能。那麼現在請問,殺光N個小兵需要單獨殺死其中多少個小兵?

輸入

輸入資料首先給出一個整數C,表示測試組數。

然後是C組資料,每組包含一個正整數n (n<100000)。

輸出

對應每組資料,請輸出一個整數,表示猴子單獨殺死小兵的個數,每組輸出佔一行。

樣例輸入

2
5 10

樣例輸出

2
2

來源

ys 

【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);
		}
	}
}