我要肆了 2025-03-25 17:17 采纳率: 100%
浏览 13
已结题

C++快递费 分支结构-c


快递费
题目难度:语法提高
时间限制:1000ms
内存限制:512MB
题目背景
快递的重量可分为实际重量、体积重量和计费重量。

实际重量(AW):指包括包装在内的货物总重量。

体积重量(VW):指将货物体积转换成重量,目前国际快递体积重量的计算方法是:体积重量=长(CM) * 宽(CM) * 高(CM) / 5000 (CM)。

计费重量(CW):将快递的实际重量与体积重量进行比较,以较大者为计费重量。

题目描述
小T想寄一件未包装重 g kg,长宽高为a、b、h(CM)的快递,快递需打包后才能进行运输,已知快递站快递的计费规则和5种包装箱大小,想请你帮忙计算一下快递费用需要多少?

计费规则:快递首重10元(首重1kg,不足1kg,按1kg计),超重每续重单位加收2元(续重以0.5KG为计重单位,不足0.5kg,按0.5kg计)

包装箱型号:
        长             宽             高           质量
120cm    18cm    10cm    0.1kg
225cm    20cm    18cm    0.15kg
330cm    25cm    20cm    0.2kg
436cm    30cm    25cm    0.25kg
553cm    32cm    23cm    0.3kg
输入格式
第一行 一个实数 g ,表示所要寄送快递的重量

第二行 三个整数a,b,h,分别表示所要寄送快递的长、宽、高。

输出格式
输出一个整数,表示快递费用

样例数据
样例输入 #1
0.9
20 18 10
​
样例输出 #1
10
​
样例输入 #2
1
25 20 18
​
样例输出 #2
14
​
数据范围
对于 40% 的数据,VW≤AW;

对于 60% 的数据,a≥b≥h;

对于 100% 的数据,1≤a,b,h≤500<g≤15,数据保证快递能装进包装箱中。

C++,我打的总是WA一个点,求没有Chat GPT风格的代码

  • 写回答

4条回答 默认 最新

  • 我要肆了 2025-03-27 21:20
    关注
    
    #include<bits/stdc++.h>
    using namespace std;
    
    int n;
    long long w,h;
    int main(){
        cin >> n >> w >> h;
        long long l=1,r=max(h,w)*n;
        long long mid;
        long long ans;
        while(l<=r){
            mid=(l+r)/2;
            if ((mid/w)*(mid/h)<n) l=mid+1;
            else if ((mid/w)*(mid/h)>=n){
                ans=mid;
                r=mid-1;
            }
        }
        cout << ans*ans;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月25日