问题及代码:
/*
*Copyright(C) 2014 ,烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:pro6.cpp
*作者:宋健
*完成日期:2014年10月27日v
*版本号:v1.0
*
*问题描述:利用穷举法解决百鸡百钱问题
*输入描述:
*程序输出:符合条件的所有方案
*/
#include <iostream>
using namespace std;
int main()
{
double x,y,z,count=0;
for(x=0; x<=20; ++x)
for(y=0; y<=33; ++y)
{
for(z=0; z<=300; z++)
if((5*x+3*y+z/3==100)&&(x+y+z==100)&&z/3!=0)
{
++count;
cout<<"方案"<<count<<":"<<"翁"<<x<<"只,"<<"母"<<y<<"只,"<<"雏"<<z<<"只."<<endl;
}
}
return 0;
}
运行结果:
知识点总结:
初次使用穷举法,要通过for嵌套列举出所有的情况,然后再通过if语句筛选,最后输出。
学习心得:
穷举法对人来说非常麻烦,但是计算机可以忽略这一缺点,穷举法能够从所有情况中挑选出合适的方案,非常好用。