zoukankan      html  css  js  c++  java
  • 18-语言入门-18-鸡兔同笼

     
    描述
    已知鸡和兔的总数量为n,总腿数为m。输入nm,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)

    输入
    第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)
    a
    行里,每行都有一个nm.(0<m,n<100)
    输出
    输出鸡兔的个数,或者No answer
    样例输入
    2
    14 32
    10 16
    样例输出
    12 2
    No answer
     
     
    代码:
    #include <stdio.h>

    //输出结果
    //n-个数和,m-腿数和
    static void printResult(int n,int m);

    int main()
    {
         int readLen = 0;
         scanf("%d",&readLen);
         getchar();
        
         while(readLen > 0)
         {
              int n = 0;
              int m = 0;
             
              scanf("%d %d",&n,&m);
              getchar();
             
              printResult(n,m);
             
              --readLen;
         }
        
         return 0;
    }

    //输出结果
    //n-个数和,m-腿数和
    static void printResult(int n,int m)
    {
         if(m<n)
         {
              printf("No answer");
              return;
         }
     
         int tmpValue = m-2*n;
         if(tmpValue < 0 || tmpValue % 2 != 0)
         {
              printf("No answer");
              return;
         }
        
         int rabbitCount = tmpValue / 2;
         int chickenCount = n - rabbitCount;
     
        if(chickenCount < 0)
        {
              printf("No answer");
              return;
        }
        
         printf("%d %d ",chickenCount,rabbitCount);
    }
     
     
    通过方程组,解得个数的判断
    兔子:(m-2n)/2
    鸡:n-兔子个数
     
    另外自己写的代码对条件的判断过于繁琐,推荐优秀程序如下:
     
    #include<iostream>
    using namespace std;
    int main()
    {
    int n,a,b,p,q;
    cin>>n;
    while(n--)
    {
    cin>>a>>b;
    q=(b-2*a)/2;
    p=a-q;
    if(p<0 ||q<0 || b%2) cout<<"No answer"<<endl;
    else cout<<p<<" "<<q<<endl;
    }
    }
     
  • 相关阅读:
    云时代架构阅读笔记一——架构师必备最全SQL优化方案
    虚拟机VMware安装Ubuntuix
    假期周总结八
    虚拟机VMware安装Kali Linux
    codeforces 401D (数位DP)
    2014 多校联合训练赛6 Fighting the Landlords
    lightoj 1224
    lightoj 1020 (博弈)
    lightoj 1019
    lightoj 1018 (状态压缩DP)
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/5141733.html
Copyright © 2011-2022 走看看