YTU OJ 3227: 猴子打小兵

198 篇文章 53 订阅
29 篇文章 0 订阅

题目描述

小康最近沉迷王者荣耀,他最喜欢用猴子了,但是他有强迫症。假设猴子每使用一次技能可以打死一半的小兵,但是如果当前的小兵数为奇数,那么他就必须先单独杀死其中一个,使小兵数为偶数,再使用技能。那么现在请问,杀光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);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值