奥数与C++小学三年级(第十三题-盐的重量)

代码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;  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值