问题:假设有三种不同的鸡,分别为公鸡、母鸡和小鸡,它们的价格分别为5元、3元和1/3元(三只小鸡的价格是1元)。现在要用100元钱买100只鸡,问公鸡、母鸡和小鸡各应该买多少只?
纯暴力二层循环,然后定义z
#include <iostream>
using namespace std;
int main() {
for (int x = 0; x <= 20; ++x) { // 公鸡最多20只
for (int y = 0; y <= 33; ++y) { // 母鸡最多33只
int z = 100 - x - y; // 小鸡的数量
if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
cout << "公鸡: " << x << " 只, 母鸡: " << y << " 只, 小鸡: " << z << " 只" << endl;
}
}
}
return 0;
}
优化:设x为已知减少了一次遍历的次数
#include <iostream>
using namespace std;
int main() {
for (int x = 0; x <= 25; ++x) { // 公鸡最多25只
for (int y = 0; y <= 33; ++y) { // 母鸡最多33只
int z = 100 - x - y; // 小鸡的数量
if (z >= 0 && z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
cout << "公鸡: " << x << " 只, 母鸡: " << y << " 只, 小鸡: " << z << " 只" << endl;
}
}
}
return 0;
}
ok