Openjudge-计算概论(A)-鸡兔同笼

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

2
3
20

样例输出

0 0
5 10思路:一个很有意思很有名的数学问题,判断是否小于等于2,如果不是的话最少有:(a/4+(a%4)/2)这么多,最多有(a/2)这么多,具体是怎样得出的,想想吧!代码如下:
#include<stdio.h>
int main()
{
    int n,a,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a);
        if(a<2||a%2==1)//如果小于或等于2的话,没什么好说了(PS:一只鸡和一只兔的脚加起来总不可能少于2个吧,要不然是什么怪胎啊),直接输出!!
        {
            printf("0 0\n");
        }
        else
        {
            printf("%d %d\n",(a/4+(a%4)/2),a/2);
        }
    }
    return 0;
}
时间: 2024-11-05 07:21:30

Openjudge-计算概论(A)-鸡兔同笼的相关文章

Open Judge 2750 鸡兔同笼

2750:鸡兔同笼                                                                                                   总时间限制:1000ms                                                                                                   内存限制:65536kB 描述 一个笼子里面关了鸡和兔子(鸡有

鸡兔同笼问题、百鸡问题、辗转相除法求最大公约数

一.鸡兔同笼 鸡和兔子35只,腿一共有94条,求出鸡和兔子的数量各是多少?(鸡的数目是23,兔子的数目是12) $n = 0; for($ i=1;$i<35;$i++){ $n ++; //n=34; $ j=35-i; if(i*2+j*4==94){ printf("鸡的数目是%d只, 兔子的数目是%d只",$i,$j); } } 此时,循环进行了34次.但是,有些循环是无意义的,因为得到了结果,循环还在继续往下执行.我们知道:两个未知数,两个方程,其方程组的解唯一!那么我

Linux脚本基础篇-鸡兔同笼问题

概述 鸡兔同笼,是古代著名典型趣题之一,记载于<孙子算经>之中,题目为"有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚.问笼中各有多少只鸡和兔?".鸡兔同笼问题,是小学奥数的常见题型,也是计算机编程算法中常见的一道题,现阶段开始shell脚本的学习,因此不妨用脚本来尝试编写一个计算该问题的脚本,加深自己对Linux shell脚本的理解. 算法 在做一道数学题之前,思路是极为重要的,自己如何解决这道题,怎么按照计算机语言的思维来帮助我们计算就成为了首

C/C++算法竞赛入门经典Page9 例题1-4 鸡兔同笼

题目:鸡和兔总数:n,总腿数:m.输入n,m,输出鸡和兔分别的数量;无解则输出"No answer" 样例输出1: 14 32 样例输出1: 12 2 样例输入2: 10 16 样例输出2: No answer 首先,声明两个变量n,m对应总数和总腿数;再声明两个变量为鸡和兔各自的数量a,b 1 int n,m,a,b; 输入n,m: scanf("%d%d",&n,&m); 通过联立方程组: a+b=n 2a+4b=m 得: a=(4n-m)/2;

鸡兔同笼

鸡兔同笼 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡和兔的数目,如果无解,则输出"No answer"(不要引号). 输入 第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10) a行里,每行都有一个n和m.(0<m,n<100) 输出 输出鸡兔的个数,或者No answer 样例输入 2 14 32 10 16 样例输出 12 2 No answer #inc

java求鸡兔同笼问题

import java.util.Scanner; public class jitutonglong { static int j,t; public static int qiongju(int head,int foot) { int re,x,y; re=0; for(x=0;x<=head;x++) { y=head-x; if(x*2+y*4==foot) { re=1; j=x; t=y; } } return re; } public static void main(Strin

1109: 零起点学算法16——鸡兔同笼

1109: 零起点学算法16--鸡兔同笼 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 4456  Accepted: 1355[Submit][Status][Web Board] Description 鸡和兔关在同一笼子中,已知总数量n和腿的总数量m,求鸡的数量和兔的数量. Input 输入2个整数分别是n和m(多组测试数据) Output 输出鸡的数量和兔的数量,中间用空格隔开,如果无解则

鸡兔同笼问题多解

还记得有一期跑男里有过一道关于鸡兔同笼的问题,说鸡兔同笼,一共有35个头,94条腿,问鸡有多少只?兔有多少只? 今天突发奇想的想用最近学的java知识做一下这道题,当然,题的结果我是笔算出来的,为了印证输出的正确与否,不多说了,直接上码: 其实从前后顺序看会发现,代码越来越简单,最后甚至都放弃使用循环来完成,完全变成了一个数学公式,但当时自己刚做的时候,我足足死扣了两个小时才清楚了思路,再之后的几个就比较轻松地做出来了. 思路很重要,想要自主完成一个东西一定要有清晰的思路,这只是个非常简单的题目

java-第六章-for-解决鸡兔同笼问题

public class A01 { public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 0; i < 35; i++) { int Rabbit = 35 - i; if (i * 2 + Rabbit * 4 == 94) { System.out.println("鸡:"+i + "\t兔子" + Rabbit); } } } }

(c语法百题37)鸡兔同笼

内容: 鸡兔同笼中头的总数,脚的总数,求鸡兔各多少只 输入说明: 一行两个整数分别表示头.脚总数(保证有解,当然有可能解为0) 输出说明: 一行两个整数,分别表示鸡.兔的只数 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001. 20 40 输出样例 : 20 0 #include <stdio.h> int main() { int a,b,x,y; scanf("%d%d",&x,&y); for (a=0;a<1000