B4409 [GESP202509 一级] 商店折扣

题目描述

商店正在开展促销活动,给出了两种方案的折扣优惠。第一种方案是购物满 xxx 元减 yyy 元;第二种方案是直接打 nnn 折,也就是说价格变为原先的 n/10n/10n/10。这里的 x,y,nx, y, nx,y,n 均是正整数,并且 1≤y<x1 \leq y < x1y<x1≤n<101 \leq n < 101n<10

需要注意的是,第一种方案中满减优惠只能使用一次。例如购物满 101010 元减 333 元时,若挑选了价格总和为 333333 元的物品,只能减免 333 元,需要支付 303030 元。

小明在商店挑选了价格总和为 ppp 元的物品,结账时只能使用一种优惠方案。小明最少需要支付多少钱呢?

输入格式

四行,四个正整数 x,y,n,px, y, n, px,y,n,p,含义见题目描述。

输出格式

一行,一个小数,表示小明最少需要支付多少钱,保留两位小数。

输入输出样例 #1

输入 #1

8
7
9
10

输出 #1

3.00

输入输出样例 #2

输入 #2

8
7
2
11

输出 #2

2.20

说明/提示

对于所有测试点,保证 1≤y<x≤1001 \leq y < x \leq 1001y<x1001≤n<101 \leq n < 101n<101≤p≤1001 \leq p \leq 1001p100

解析

本题要注意整数除法要改成浮点数,详见代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int x,y,n,p;
    cin>>x>>y>>n>>p;
    double mj;//满减后的实际付款金额
    double dz;//打折后的实际付款金额
    if(p>=x){//超过满减额度
        mj=p-y;//满减
    }else{//没超过
        mj=p;//原价
    }
    dz=p/10.0*n;//计算打折后的金额,注意要改成浮点数除法
    cout<<fixed<<setprecision(2)<<min(dz,mj);//输出最小值
	return 0;
}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐