题解:P14693 [ICPC 2024 Tehran R] Divar' s Salaries

· · 题解

题目很简单,就不解释了应该没人看不懂题意吧

思路

注意当月工作总小时数包括节假日工作小时数。

答案我们先计算出没有加逗号的当月工资,然后再转成字符串并且算出长度,最后在经过一个循环把逗号加上就行了。

其他的会在代码中解释。

代码

#include<bits/stdc++.h> //万能头
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int x,k,h;
        cin>>x>>k>>h;
        int ans=0;
    // 节假日工资:h小时按2倍计算
        ans+=h*2*x;
    // 普通工时=总工时-节假日工时
        int c=k-h;
    // 计算普通工时工资
        if(c>140)// 超过140小时有加班费
        {
            ans+=140*x+(c-140)*x*1.5;
      // 前140小时原价,超出部分1.5倍
        }
        else // 不超过140小时全部原价
        {
            ans+=c*x;
        }
        string s=to_string(ans);
        string a;
        int l=s.length();
        for(int j=0;j<l;j++) 
        {
            a+=s[j];
      // 判断是否需要加逗号
            if((l-j-1)%3==0 && j!=l-1)
            {
                a+=',';
            }
        }
        cout<<a<<endl;
    }
    return 0; //return 0;是个好习惯
}