1 条题解
-
0
G1021 [GESP202509 一级] 商店折扣 题解
难度:2(GeekPi教学评定);知识点:条件判断、最值、浮点运算。
解题思路
分别计算两种优惠的实际付款:满x元时减y元,否则仍付p;n折的付款是p*n/10。优惠不能叠加,取两个结果中的较小值。
为什么正确
两种可选优惠都单独计算了有效价格,取最小值就是最便宜的合法方案。
易错点
满减条件包含p==x;n折应除以10;使用浮点计算,固定输出两位小数。
复杂度
时间:O(1);额外空间:O(1)。
参考代码(C++17)
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); double x,y,n,p; cin>>x>>y>>n>>p; cout<<fixed<<setprecision(2)<<min(p>=x?p-y:p,p*n/10); }来源与说明
本题解为配套教学整理,非官方题解。题库使用自行生成的测试数据,8个测试点。
- 1