c++计算邮费

本文分享了一段C++代码,用于解决在线编程题目oj(judge.codemao.cn)中的1113题,涉及邮费计算问题。

不说了,直接上代码,对应oj(judge.codemao.cn)1113题

#include <iostream>
using namespace std;
int main(){
   
   
  int a,m=0;
  char b;
  cin >>a>>b
### 使用C++编写程序计算邮资 为了实现一个能够根据给定条件自动计算邮资的程序,可以采用结构化的方式处理不同情况下的费用变化。下面是一个基于特定规则计算邮资的例子: 当物品重量不超过1000克时,基础邮费设定为8元;对于超出的部分,则按照每增加500克加收4元的标准累加额外费用。此外,如果用户选择了保险服务(标记为'y'),则还需在此基础上追加固定金额5元作为保险费。 下面是具体的代码实现方式[^1]: ```cpp #include <iostream> using namespace std; int main() { int weight, postage; char insurance; cin >> weight >> insurance; if(weight <= 1000){ postage = 8; } else{ if((weight - 1000) % 500 == 0) postage = 8 + (weight - 1000) / 500 * 4; else postage = 8 + ((weight - 1000) / 500 + 1) * 4; } if(insurance == 'y') cout << postage + 5 << endl; else if(insurance == 'n') cout << postage << endl; return 0; } ``` 此段代码首先读取输入数据——即包裹的重量以及是否需要附加保险的信息。接着通过一系列`if-else`逻辑判断来决定最终应收取多少邮资,并将结果输出到屏幕上。这里特别注意的是,在处理超重部分计价时考虑到了可能存在的不足一档的情况,确保了收费更加合理公正。 另一个例子展示了更复杂的场景下如何调整算法以适应不同的定价策略[^4]。在这个版本中,起始价格设定了更高的门槛,并且针对超过初始限额后的增量采用了线性的增长模式: ```cpp #include <iostream> #include<iomanip> //用于控制浮点数精度 using namespace std; int main(){ double weight, cost; const double BASE_WEIGHT = 1.0; // 基础重量单位(公斤) const double BASE_COST = 15.0; // 起步价 const double ADDITIONAL_COST_PER_KG = 8.0; // 每多出1kg的价格 cin>>weight; if(weight<=BASE_WEIGHT){ cost=BASE_COST; }else{ cost=BASE_COST+(weight-BASE_WEIGHT)*ADDITIONAL_COST_PER_KG; } cout<<fixed<<setprecision(1)<<cost<<endl;//设置输出格式为一位小数 return 0; } ``` 这段代码同样接收用户的输入并据此计算总成本,但是它引入了一个新的概念:每当货物重量超过了预定义的基础值之后,就会依据实际超出量按比例增收相应的费用。同时为了避免不必要的舍入误差影响用户体验,还特意设置了输出的小数位数限制。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值