• 百鸡百钱系列问题


    问题描述:

    经典问题的描述如下:在市场上,鸡的售价分别是:公鸡3文钱1只,母鸡2文1只,小鸡1文3只。问拿100文钱想买100只鸡,则公鸡、母鸡和小鸡应各买多少只? 现在要解决的问题是:如果鸡的价格保持不变,有人拿钱若干,想使买到的鸡数与钱数相当,问有哪些解决方案。

    输入:

    输入数据包含一个整数N(10<=N<=10000),表示钱数。

    输出:

    输出数据需列出满足买到的鸡数与所持钱数相当的所有解,每个解占一行,包含三个整数分别表示要买的公鸡、母鸡和小鸡的数量,用空格分隔。存在多组解的情况下,输出按升序排列(即0 0 1在0 1 0之前)。

    输入样例:

    10

    输出样例:

    0 4 6

    一般的代码:

     

    #include <iostream>
    using namespace std;
    
    
    void Num1(int n)
    {
        for(int i=0;(3*i)<=n;i++)
        {
            for(int j=0;(2*j)<=(n-3*i);j++)
            {
                for(int k=0;k<=3*(n-3*i-2*j);k++)
                if(n==(i+j+k)&&n==(k/3+2*j+3*i))
                cout<<i<<" "<<j<<" "<<k<<endl;
            }
        }
    }
    int main()
    {
        int n;
        cin>>n;
        Num1(n);
    }
    

     

    比较高效的代码(1):

    #include <iostream>
    using namespace std;
    
    
    void Num1(int n)
    {
        int k;
        for(int i=0;i<n/3;i++)
        {
            for(int j=0;j<n/2;j++)
            {
                k=n-i-j;
                if((k/3+i*3+j*2)==n&&(k%3==0))
                cout<<i<<" "<<j<<" "<<k<<endl;
            }
        }
    }
    int main()
    {
        int n;
        cin>>n;
        Num1(n);
    }
    

    比较高效的代码(2):

     

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int main()
    {
        int cock,hen,chick;
        int money;
        scanf("%d",&money);
        for(chick=0;chick<=money;chick+=3)
        {
            cock=chick*5/3-money;
            hen=2*money-chick*8/3;
            if(cock+hen+chick==money&&cock>=0&&hen>=0)
            printf("%d %d %d\n",cock,hen,chick);
        }
    }
    

     

      

     

      

     

    态度决定高度,细节决定成败,
  • 相关阅读:
    获取键盘代码
    从一道js笔试题到==运算符的简析
    【物联网智能网关01】通过AD采集获取温湿度
    【物联网智能网关04】WinForm for .NET MF 功能一览
    .NET Micro Framework V4.2 RTM正式发布
    【物联网智能网关02】获取摄像头数据+显示
    .NET Micro Framework开发板用户简明手册(v3.0)
    2011 ARM技术研讨会杂记
    再谈.NET Micro Framework移植
    【.Net MF网络开发板研究06】以太网转串口
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/2962295.html
Copyright © 2020-2023  润新知