百鸡问题

作者:chenj 来源:本站原创 发布时间:2017年12月19日
 

百鸡问题 

一、问题描述:
今有鸡翁一,值钱伍;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?
二、问题分析:
设公鸡为x,母鸡为y,小鸡为z,则
X+y+z=100
5x+3y+z/3=100
问题转为不定方程的解
三、算法----枚举法:从一个确定的集合中去搜索正确的解
#include<iostream>
using namespace std;
int main()
{
 int n,x,y,z;
   for(x=1;x<=100;x++) //搜索(逐一枚举)
    for(y=1;y<=100;y++)
      for(z=1;z<=100;z++)
        {     
          if(x+y+z==100&&5*x+3*y+z/3.0==100)   //约束条件
cout<<x<<" "<<y<<" "<<z<<endl; //输出结果
         }
  return 0;
}
需要枚举多少次?
对于枚举算法,缩小枚举的范围,改变约束条件,是程序优化的主要考虑。
请对程序进行优化
文章录入:jsj 责任编辑:jsj
点击数: 【字体: 收藏 打印文章 查看评论
观后心情
感动 同情 无聊 愤怒 搞笑 难过 高兴 路过