1 条题解

  • 0
    @ 2025-4-9 23:15:59

    题意分析

    题目模拟了商人Jame的交易过程:他以成本价NN元进货,售价MM元(N<MN < M)。顾客可能用假币(总额PP元)支付,Jame找零CC元。若PMP \geq M,顾客用假币全额支付,Jame损失商品成本NN和找零CC;若P<MP < M,顾客实际支付了MPM-P元的真钱,Jame的净损失需扣除这部分收入。最终要求计算Jame的净损失(若盈利则为负数)。

    解题思路

    1. 分类讨论:根据顾客支付金额PP与售价MM的关系分两种情况:
      • PMP \geq M:假币覆盖全部售价,损失为N+CN + C
      • P<MP < M:顾客支付了MPM-P真钱,净损失为N+C(MP)N + C - (M - P)
    2. 统一公式:两种情况可合并为损失=N+Cmax(MP,0)\text{损失} = N + C - \max(M - P, 0),直接计算即可。注意结果为负时表示盈利。

    C++实现

    cpp

    #include <iostream>
    #include <vector>
    using namespace std;
    int main()
    {
    	vector<int> jg;
    	while(1)
    	{
    		int a,b,c,d;
    		cin>>a>>b>>c>>d;
    		if((a==0)&&(b==0)&&(c==0)&&(d==0))
    		{
    			break;
    		}
    		int pay=b+d;
    		jg.push_back(a+d-(pay-c));	
    	}
    	for(int i=0;i<jg.size();i++)
    	{
    		cout<<jg[i]<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    1522
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    1
    上传者