橘子称重问题C++

问题 A: 橘子称重

时间限制: 1.000 Sec  内存限制: 16 MB
提交 状态
题目描述

学校买回来一大箱橘子,有m个(m>=100 && m <= 1000),橘子大小比较均匀,学校想称一下总共有多重,发现大称坏掉了还没有修好,只有一个小的弹簧秤。学校又不想分开称,那样太慢了。

小明想了一个办法,由于橘子大小比较均匀,可以从中拿n个出来(n>=5 && n<=20),这n个橘子的重量弹簧秤是可以称出来的,有了这n个橘子的重量,就可以计算出平均一个橘子有多重,这样就能知道整箱大约有多重了。

请编写程序,从键盘读入橘子总数m,小明称的橘子的个数n以及这n个橘子的重量,计算出这箱橘子总共约有多重(结果保留1位小数)。

输入

2行,第一行2个整数m和n,分别代表一箱橘子的总个数以及小明称的橘子的个数。

第二行为n个橘子的重量(整数)。

输出
一箱橘子的重量(保留1位小数)
样例输入 Copy
100 7
84 83 82 81 80 79 79
样例输出 Copy
8114.3

 

解题思路:

假设整箱橘子的总重量为totalWeight,小明称出来的n个橘子的总重量为nTotalWeight,平均每个橘子的重量为avgWeight,则有以下公式:

totalWeight = m * avgWeight avgWeight = nTotalWeight / n

其中,m为输入的总数,n为输入的称量的个数,nTotalWeight为称量出来的n个橘子的总重量。

所以,我们只需要用第二行输入的n个数求出总重量和平均重量,再带入公式中计算即可。

注意事项:

  1. 输入的橘子总数m和小明称的橘子数n需要满足题目给定的范围;
  2. 橘子的重量为整数,但计算过程中需要转换为浮点数;
  3. 输出结果需要保留1位小数,可以使用C++中的setprecision()函数来控制小数位数

 

#include <iostream>
#include <iomanip>

int main() {
    int m, n;  // 橘子总数m和小明称量的橘子数n
    std::cin >> m >> n;
    
    int nTotalWeight = 0;  // 称量出来的橘子总重量
    for (int i = 0; i < n; ++i) {
        int weight;
        std::cin >> weight;
        nTotalWeight += weight;
    }
    
    double avgWeight = static_cast<double>(nTotalWeight) / n;  // 平均每个橘子的重量
    
    int totalWeight = m * avgWeight;  // 整箱橘子的总重量
    
    std::cout << std::fixed << std::setprecision(1);  // 控制输出小数位数为1
    std::cout << totalWeight << " " << avgWeight << std::endl;
    
    return 0;
}

在这段代码中,我们首先读取输入的橘子总数m和小明称量的橘子数n。然后通过循环读取n个橘子的重量,并累加得到称量出来的橘子总重量nTotalWeight。接着使用强制类型转换将nTotalWeight转换为浮点数,再除以n得到平均每个橘子的重量avgWeight。最后通过将m乘以avgWeight得到整箱橘子的总重量totalWeight。最后使用std::cout输出结果,控制小数位数为1,使用std::setprecision函数。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

善程序员文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值