题目1155:鸡兔同笼

来源:互联网 发布:java初级程序员工资 编辑:程序博客网 时间:2024/05/16 15:43

题目描述:

一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。

输入:

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)

输出:

输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。

样例输入:
2320
样例输出:
0 05 10


#include<stdio.h>int main() {int k;scanf("%d", &k);while (k--) {int n;scanf("%d", &n);if (n % 2 != 0) {printf("0 0\n");continue;}int min1 = 0x7fffffff, max1 = 0;int mid1 = n / 2;int tmp1;for (int i = 1; i <= mid1; i++) {if ((n - 2 * i) % 4 == 0) {tmp1 = i + (n - 2 * i) / 4;if (tmp1 < min1)min1 = tmp1;if (tmp1 > max1)max1 = tmp1;}}int min2 = 0x7fffffff, max2 = 0;int mid2 = n / 4;int tmp2;for (int i = 1; i <= mid2; i++) {if ((n - 4 * i) % 2 == 0) {tmp2 = i + (n - 4 * i) / 2;if (tmp2 < min2)min2 = tmp2;if (tmp2 > max2)max2 = tmp2;}}int min = min1 < min2 ? min1 : min2;int max = max1 > max2 ? max1 : max2;printf("%d %d\n", min, max);}return 0;}

题目链接:

http://ac.jobdu.com/problem.php?pid=1155

0 0