题目描述
小T在网上网购了乒乓和羽毛球各若干个,这两件商品的单价分别为_4_元和_2.5_元。正逢双十一大促商家在搞促销活动,规则如下:
购买乒乓球数量_10_个及以上,则乒乓球价格可以打_8_折;且每买_12_个乒乓球就可以抵扣一个羽毛球的费用(如果有买的话)。
请编写一个价格结算程序,输入购买的乒乓和羽毛球个数,并返回最终的总费用。
输入格式
两个整数,分别表示乒乓球和羽毛球的数量_x_和_y_。
输出格式
最终所需支付的总费用(_结果保留1位小数_)
题目描述
小T在网上网购了乒乓和羽毛球各若干个,这两件商品的单价分别为_4_元和_2.5_元。正逢双十一大促商家在搞促销活动,规则如下:
购买乒乓球数量_10_个及以上,则乒乓球价格可以打_8_折;且每买_12_个乒乓球就可以抵扣一个羽毛球的费用(如果有买的话)。
请编写一个价格结算程序,输入购买的乒乓和羽毛球个数,并返回最终的总费用。
输入格式
两个整数,分别表示乒乓球和羽毛球的数量_x_和_y_。
输出格式
最终所需支付的总费用(_结果保留1位小数_)
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
这是一个关于计算网购商品总费用的编程问题,需要考虑促销折扣和抵扣规则。我来提供一个完整的C++解决方案。
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;
double calculateTotalCost(int x, int y) {
const double pingpongPrice = 4.0;
const double badmintonPrice = 2.5;
// 计算乒乓球费用
double pingpongCost = x * pingpongPrice;
if (x >= 10) {
pingpongCost *= 0.8; // 打8折
}
// 计算羽毛球费用
double badmintonCost = y * badmintonPrice;
// 计算可抵扣的羽毛球数量
int freeBadminton = x / 12;
if (freeBadminton > 0 && y > 0) {
// 实际抵扣数量不能超过购买的羽毛球数量
int actualFree = min(freeBadminton, y);
badmintonCost -= actualFree * badmintonPrice;
}
return pingpongCost + badmintonCost;
}
int main() {
int x, y;
cin >> x >> y;
double total = calculateTotalCost(x, y);
// 输出结果保留1位小数
cout << fixed << setprecision(1) << total << endl;
return 0;
}
calculateTotalCost函数处理所有计算逻辑:
main函数:
fixed和setprecision(1)确保输出保留1位小数输入1:
10 5
输出1:
37.0
解释:乒乓球10个(32元,8折后),羽毛球5个(12.5元),抵扣1个羽毛球(2.5元),总计32+12.5-2.5=42.0
输入2:
24 3
输出2:
76.8
解释:乒乓球24个(76.8元,8折后),羽毛球3个(7.5元),抵扣2个羽毛球(5元),总计76.8+7.5-5=79.3