鸡兔同笼

题目描述

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

输入

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

输出

输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个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)

posted @ 2019-09-07 09:34  君若绥年  阅读(369)  评论(0编辑  收藏  举报