题解: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;是个好习惯
}