cmd's Blog

Happy coding, happy every day.

鸡兔同笼

 问题描述:一个笼子里面关了鸡和兔子(鸡2只脚,兔子4只)。已经知道了笼子里面脚的总数a,问笼子里面至少有

多少只动物,至多有多少只动物
 输入数据:第一行是测试数据的组数n,后面跟着n行输入。每组测试数据占一行,每行包含一个正整数a(a < 32768).
输出要求:包含n行,每行两个数,分别为最少和最多的,若没有满足的则输入两个0
示例1:如果运行下面这段程序,输入2        4 (1,2) 10(3,5)结果马上就跟着输出,并不是输入完之后结果一起输出。所以必须先把结果存在一个数组里,当然数组的大小必须可以动态更新。
#include <stdio.h>
int main(void)
{
        int total, i, temp;
        scanf("%d", &total);
        for (i = 0; i < total; i++) {
                scanf("%d", &temp);
                if (temp % 2 != 0)
                        printf("%d %d\n", 0, 0);
                else
                        printf("%d %d\n", (temp % 4 == 0)?temp / 4:temp / 4 + 1, temp /2);
        }
        return 0;
}

 用java实现更方便一点,代码如下:

 

import java.util.*;

public class two_1 {
        public static void main(String argv[]) {
                int number, j;
                Scanner keyboard = new Scanner(System.in);
                number = keyboard.nextInt();
                int[][] store = new int[number][2];
                for (j = 0; j < number; j++) {
                        int temp = keyboard.nextInt();
                        if (temp % 2 != 0) {
                                store[j][0] = 0;
                                store[j][1] = 0;
                        } else {
                                store[j][0] = (temp % 4 == 0) ? temp / 4 : temp / 4 + 1;
                                store[j][1] = temp / 2;
                        }
                }

                for (int k = 0; k < j; k++) {
                        System.out.print(store[k][0]);
                        System.out.println(" " + store[k][1]);
                }
        }
}