信息学奥赛一本通C++版 1052:计算邮资 答案

目录

【链接】

【题目描述】

【输入】

【输出】

【输入样例】

【输出样例】

【答案】 


【链接】

1052:计算邮资icon-default.png?t=N7T8http://ybt.ssoier.cn:8088/problem_show.php?pid=10521052:计算邮资

【题目描述】

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

【输入】

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

【输出】

输出一行,包含一个整数,表示邮费。

【输入样例】

1200 y

【输出样例】

17

【答案】 

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int k,a=0,y;
	char b;
	cin>>k>>b;
	if(k<=1000)
		a+=8;
	else if(k>1000)
	{
		a+=8;
		y=ceil(((k-1000)*1.0)/500.0)*4;
		a+=y;
	}
	if(b=='y')
		a+=5;
	cout<<a<<endl;
	return 0;
}

 谢谢观看,文章质量在不断改进,记得点个关注哦!

### 关于信息学奥赛一本C++中的题目解答 对于《信息学奥赛一本》中提到的特定编程挑战,可以提供详细的解释以及代码实现方式。 #### 计算邮资问题解析 针对计算邮资的问题,程序逻辑如下: 当邮件重量不超过1000克时,基础费用设定为8元;超过此限重的部分按照每增加500克加收4元的标准累加额外费用。另外,若选择了挂号服务,则无论包裹多重都将追加固定手续费5元[^1]。 ```cpp #include <iostream> #include <cmath> // 导入用于处理浮点运算的库函数 using namespace std; int main() { int weight, additionalCost = 0; char registeredService; cin >> weight >> registeredService; // 输入物品质量和是否选择挂号 if (weight <= 1000) additionalCost += 8; else if (weight > 1000) { additionalCost += 8; // 对超出部分按500g分段计价 additionalCost += ceil((double)(weight - 1000) / 500) * 4; } if (registeredService == 'y') additionalCost += 5; cout << additionalCost << endl; // 输出最终应支付金额 return 0; } ``` 这段代码实现了上述业务规则,并过`cin`接收用户输入的数据来动态调整总成本。 #### 不高兴的津津问题解析 关于判断哪一天最让津津感到不满的情况,核心在于比较每天的情绪指数之和并找出最大值对应的日期。这里采用数组存储每日情绪变化情况,遍历一周内每一天的数据求得最高得分及其对应位置即代表该星期中最令人沮丧的日子[^2]。 ```cpp #include <iostream> using namespace std; int main(){ int unhappyDayIndex = 0, highestScore = INT_MIN, dailyScores[7], morningMood, eveningMood; for(int dayOfWeek = 0 ;dayOfWeek<7;++dayOfWeek){ cin>>morningMood>>eveningMood; dailyScores[dayOfWeek]=morningMood+eveningMood; if(dailyScores[dayOfWeek]>highestScore){ highestScore=dailyScores[dayOfWeek]; unhappyDayIndex=dayOfWeek+1; } } cout<<unhappyDayIndex<<endl; return 0; } ``` 在这段源码里,利用循环结构读取了一周七天早晚心情评分,并实时更新记录下当前最高的累积分数连同其索引编号以便最后输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值