C++实现百钱买百鸡算题
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
三重循环实现:
#include "iostream";
using namespace std;
int main() {
int x, y, z;
for (x = 0; x <= 20; x++)
{
for (y = 0; y <= 33; y++) {
for (z = 0; z <= 100; z++)
{
if (z % 3 == 0 && x + y + z == 100 && x * 5 + y * 3 + z / 3 == 100) {
cout << "公鸡" << x << "母鸡" << y << "小鸡" << z << endl;
}
}
}
}
return 0;
}
二重循环实现:
#include "iostream";
using namespace std;
int main() {
int x, y, z;
for (x = 0; x <= 20; x++)
{
for (y = 0; y <= 33; y++) {
z = 100 - x - y;
if (z % 3 == 0 && x + y + z == 100 && x * 5 + y * 3 + z / 3 == 100) {
cout << "公鸡" << x << "母鸡" << y << "小鸡" << z << endl;
}
}
}
return 0;
}
一重循环实现(建议先不要看答案,先自己寻找解法思路,有助于理解计数型循环和条件型循环的使用场景,也能对于不同业务进行联想。):
#include "iostream";
using namespace std;
int main() {
int x = 0, y = 0, z = 0;
while (true)
{
z = 100 - x - y;
if (z % 3 == 0 && x + y + z == 100 && 5 * x + 3 * y + z / 3 == 100) {
cout << "公鸡" << x << "母鸡" << y << "小鸡" << z << endl;
}
if (++y > 33) {
y = 0;
x++;
}
if (x > 20) {
break;
}
}
return 0;
}