c++ 打卡第三天

2023-04-12百钱百鸡问题
一、问题描述。
       一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,我可以通过三种鸡各买多少实现100钱买一百只鸡。
二、设计思路。
       ①通过以上题我们可以确定两个方程式
            公鸡数量+母鸡数量+小鸡数量=100。
            公鸡数量*5+母鸡数量*3+小鸡数量/3=100。
        ②我们可以通过三重循环,每次增加公鸡的数量,小鸡的数量,母鸡的数量,同时用if条件判断①中的两个方程是否成立。
         ③如何if条件判断成立  我们即可打印出公鸡母鸡小鸡各自条件成立时的数量。
三、程序流程图
                                

                          

 

 四、代码实现。

#include<iostream>
using namespace std;
int main()
{
    int gj,mj,xj;
    for(int i=0;i<=20;i++)//从零开始循环寻找合适的公鸡数量 
    {
        for(int j=0;j<=33;j++)//从零开始寻找合适的母鸡数量 
        {
            xj=100-i-j;//计算小鸡的数量 
            if(xj%3==0)//限制小鸡数量为3的倍数 
            {
            if((i*5+j*3+xj/3)==100)//需要满足的条件 
            {
                cout<<"公鸡:"<<i<<"只,"<<"母鸡:"<<j<<"只,"<<"小鸡:"<<xj<<"只。"<<endl; 
            }
             }
    }
    }
    return 0;
}

五、总结

其实可以暴力的三层for循环下来,但是那样的话循环次数意味着增加一个for循环,两个for循环再巧妙地运用公式表示出小鸡的数量,就可以将第一个时间复杂度,从而使程序更加效率化。

 

 

 

 

posted @ 2023-04-12 16:14  七安。  阅读(39)  评论(0编辑  收藏  举报