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循环再巧妙地运用公式表示出小鸡的数量,就可以将第一个时间复杂度,从而使程序更加效率化。