-
题目描述:
-
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。
-
输入:
-
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)
-
输出:
-
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。
-
样例输入:
-
2 3 20
-
样例输出:
-
0 0 5 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