鸡兔同笼
题目描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)
输出
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。
如果没有满足要求的答案,则输出两个0。
样例输入
2
3
20
样例输出
0 0
5 10
#include <cstdio>
int main()
{
int jiao,mmin,mmax;
printf("请输入脚的数量。\n");
scanf("%d",&jiao);
if(jiao%2!=0)
printf("输入错误!!!\n");
else
{
mmin = (jiao+3)/4;
mmax = jiao/2;
printf("最少动物数:%d\n最多动物数:%d\n",mmin,mmax);
}
return 0;
}
假设输入的脚的数量是10,那最少就是两只兔子一只鸡,最多就是五只鸡;
这个题的意义就是为了完成向上取整的操作;
mmin = (jiao+3)/4;
这行代码就完成了向上取整的操作,也就是:
结果=(被除数+除数-1)+除数;
这样就能实现啦~
(向上取整就是例如10/2=5,10/3=4这样)
(计算机这种01笨蛋可不知道有余数就加一这种思想)
根据这种想法还可以写出四舍五入的代码(加0.5)