Dart 语法实现算术题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

main() {
// 公鸡=5,母鸡=3,小鸡=1/3 问的是各有多少只,这个假设所有的不管什么鸡都得有。
double gj;
double mj;
double xj;
double num = 0;

// 解法一:

// 如果必须有一只母鸡和一只小鸡,那最多只能有 (100- 3 - 0.33333)/ 5 ≈ 19 只 (不够一只就要舍掉,不能买残疾回来)
for (gj = 1; gj <= 19; gj++) {
// 如果必须有一只公鸡和一只小鸡,那最多只能有 (100- 5 - 0.33333)/ 3 ≈ 31 只 (不够一只就要舍掉,不能买残疾回来)
for (mj = 1; mj <= 31; mj++) {
// 如果必须有一只公鸡和一只母鸡,但是最多只能买100只,那最多只能有 (100- 8)/ (1 / 3)> 100 ? 100 :(100- 8)/ (1 / 3)只
for (xj = 1; xj <= 100; xj++) {
// 筛选符合要求的个数
if ((5 * gj + 3 * mj + xj / 3 == 100) && (gj + mj + xj == 100) && (xj % 3 == 0)) {
print('公鸡有:' + gj.toString() + '只;' + '母鸡有:' + mj.toString() + '只;' + '小鸡有:' + xj.toString() + '只;');
}
num++;
if (gj == 19 && mj == 31 && xj == 100) {
print('循环执行次数:' + num.toString());
}
}
}
}

// 解法二:

for (gj = 0; gj <= 19; gj++) {
for (mj = 0; mj <= 31; mj++) {
xj = 100 - gj - mj;
if ((5 * gj + 3 * mj + xj / 3 == 100) && (gj + mj + xj == 100) && (xj % 3 == 0)) {
print('公鸡有:' + gj.toString() + '只;' + '母鸡有:' + mj.toString() + '只;' + '小鸡有:' + xj.toString() + '只;');
}
num++;
if (gj == 19 && mj == 31 && xj == 100 - gj - mj) {
print('循环执行次数:' + num.toString());
}
}
}
// 解法三:
//假设鸡翁x 鸡母y 鸡翁最多20只 鸡母最多33 鸡雏100-x-y 至少都需要存在 所以设置x y分别小于最大数
for (int x = 0; x < 20; x++)
for (int y = 0; y < 33; y++)
if (5 * x + 3 * y + (100 - x - y) / 3 == 100) {
print('鸡翁${x}鸡母${y}鸡雏${100 - x - y}');
}
// 解法四:
// 5*gj + 3*mj + (1/3)*xj = 100
// 15*gj + 9*mj + 1*xj = 300
// 15*gj + 9*mj + 1*(100 - gj - mj) = 300
// 14*gj + 8*mj = 200
// 7*gj + 4*mj = 100 => gj <=14
for (gj = 1; gj <= 15; gj++) {
mj = (100 - 7 * gj) / 4;
xj = 100 - gj - mj;
if ((100 - 7 * gj) % 4 == 0) {
print('公鸡有:' + gj.toString() + '只;' + '母鸡有:' + mj.toString() + '只;' + '小鸡有:' + xj.toString() + '只;');
}
num++;
if (gj == 14) {
print('循环执行次数:' + num.toString());
}
}
}
//假设鸡翁x 鸡母y 鸡翁最多20只 鸡母最多33 鸡雏100-x-y 至少都需要存在 所以设置x y分别小于最大数
for (int x = 0; x < 20; x++)
for (int y = 0; y < 33; y++)
if (5 * x + 3 * y + (100 - x - y) / 3 == 100) {
print('鸡翁${x}鸡母${y}鸡雏${100 - x - y}');
}

posted @ 2021-03-25 16:41  lxn*  阅读(309)  评论(0编辑  收藏  举报