2.1 经典枚举问题
(1) 韩信点兵
【问题描述】正整数 x 除以 3 余 1,除以 5 余 2,除以 7 余 3。问符合条件的最小 x。
// 当x比较大时,更合适的做法是解同余式组,具体做法见136页。
int x;
for (x=1; ;x++)
if (x%3==1 && x%5==2 && x%7==3) break;
cout<<x;
(2) 百鸡问题
【问题描述】1 只公鸡 5 文钱,1 只母鸡 3 文钱,3 只小鸡 1 文钱。如果正好花 100 文钱,可以买几只公鸡、
for (int x=0; x<=20; x++) // 公鸡
for (int y=0; y<=33; y++) // 母鸡
{
int z=3*(100-5*x-3*y); // 小鸡
if (z>=0) cout<<x<<" "<<y<<" "<<z<<endl;
}
几只母鸡、几只小鸡?
(3) 求水仙花数
【问题描述】请输出所有的水仙花数。水仙花数是一个三位数,每一位数字的立方相加,得到的总和是它本身
for (int i=1; i<=9; i++)
for (int j=0; j<=9; j++)
for (int k=0; k<=9; k+