OJ-2750:鸡兔同笼

package poj;
import java.util.Scanner;
import java.io.BufferedInputStream;
public class E2750 {

	public static void main(String[] args) {
		int nCases, nFeet;
		Scanner in = new Scanner(new BufferedInputStream(System.in));
		nCases = in.nextInt();
		for(int i = 0; i < nCases; i++){
			nFeet = in.nextInt();
			if(nFeet % 2 != 0) {
				System.out.println("0 0");
			}else if (nFeet % 4 != 0){
				System.out.println((nFeet/4 + 1) + " " + nFeet/2);
			}else{
				System.out.println((nFeet/4) + " " + nFeet/2);
			}
		}
		in.close();
	}

}
/*
2750:鸡兔同笼
http://bailian.openjudge.cn/practice/2750/
总时间限制: 1000ms 内存限制: 65536kB
描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)
输出
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。
样例输入
3
3
20
10
样例输出
0 0
5 10
3 5
 */

# coding:UTF-8
# in Jython 2.7b3
from java.lang import System
from  java.util import Scanner
from java.io import BufferedInputStream

input = Scanner(BufferedInputStream(System.in))
nCases = input.nextInt()

for i in range(nCases):
	nFeet = input.nextInt()
	if (nFeet % 2 != 0):
		print('0 0\n')
	elif (nFeet % 4 != 0):
		print('%d %d\n' % (nFeet//4 + 1, nFeet//2))
	else:
		print('%d %d' % (nFeet//4, nFeet//2))

# coding:UTF-8
# in Python 3.2.5
nCases = int(input())

for i in range(nCases):
	nFeet = int(input())
	if (nFeet % 2 != 0):
		print('0 0\n')
	elif (nFeet % 4 != 0):
		print('%d %d\n' % (nFeet//4 + 1, nFeet//2))
	else:
		print('%d %d' % (nFeet//4, nFeet//2))

解题思路:

这个问题可以描述成任给一个整数N,如果N是奇数,则输出0 0,否则,如果N是4的倍数,则输出N/4 N/2,如果N不是4的倍数,则输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需考虑整数运算就可以了。

你可能感兴趣的:(OJ-2750:鸡兔同笼)