代码1
#include <iostream>
using namespace std;
int main() {
double weightA = 0, weightB = 0;
bool found = false;
// 我们可以设定一个合理的范围来搜索可能的重量
// 在这个问题中,由于甲袋是乙袋的三倍,我们可以从1开始尝试乙袋的重量
for (weightB = 1; ; ++weightB) {
weightA = 3 * weightB;
// 检查条件是否满足
if (weightA - 15 == weightB + 15) {
found = true;
break;
}
// 为了防止无限循环(虽然在这个特定问题中不会发生),
// 我们可以设置一个上限,但在这个例子中我们知道上限是不必要的,
// 因为条件总会在某个点满足。然而,为了演示,我们可以保留一个上限检查。
// if (weightB > SOME_UPPER_LIMIT) {
// break;
// }
}
if (found) {
cout << "甲袋盐的重量是: " << weightA << " 千克" << endl;
cout << "乙袋盐的重量是: " << weightB << " 千克" << endl;
} else {
cout << "没有找到满足条件的解。" << endl; // 实际上在这个问题中不会发生
}
return 0;
}
代码2:
#include <iostream>
using namespace std;
int main() {
// 定义变量
double weightA, weightB;
// 根据题意建立方程
// weightA = 3 * weightB
// weightA - 15 = weightB + 15
// 从第二个方程中解出 weightA
// weightA = weightB + 30
// 代入第一个方程
// 3 * weightB = weightB + 30
// 2 * weightB = 30
// weightB = 15
// 计算 weightA
// weightA = 3 * 15 = 45
weightB = 15;
weightA = 3 * weightB;
// 输出结果
cout << "甲袋盐的重量是: " << weightA << " 千克" << endl;
cout << "乙袋盐的重量是: " << weightB << " 千克" << endl;
return 0;
}