快乐分享每一篇文章
【大公鸡问题】百钱买百鸡(1)
【大公鸡问题】百钱买百鸡(1)

【大公鸡问题】百钱买百鸡(1)

时隔一个暑假,去旅了个游,就忘更了,还记得上次说的是去年csp-j复赛的题目好像快要初赛啦,这个月将推出《百钱买白鸡》系列,讲解四道百钱买白鸡的题目,从下个月开始恢复csp系列

今天的题目会相对来说比较简单,是为之后的变态题目做准备的,所以今天的算法比较适合新手

先来看题

这道题大家应该都看得出来是什么算法吧是一道很明显的暴力枚举,所以代码如下

#include #include #include using namespace std;int main(){    int n,c=0// n为多少钱(多少只鸡),c作为判断有没有答案输出no answer的一个变量    cin>>n;    for(int x=0;x5;x++)  //枚举公鸡    {        for(int i=0;i3;i++) // 枚举母鸡        {            for(int j=0;j3;j++) // 枚举小鸡            {                if(j%3==0//如果除的净(节约时间)                {                    if(x+j+i==n && 5*x+3*i+j/3==n) //判断是否成立的条件                    {                        cout" "" "endl; //输出公鸡、母鸡、小鸡                        c=1;// 有答案 所以将c设为一                    }                }            }        }    }    if(c==0// 没有答案    {        cout"No Answer.";    }  return 0;}

这是一道特别经典的题目,可是这个代码运算量极高,如果将n的范围改成1

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注