某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。

输入格式:

输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。

输出格式:

在一行输出该员工的周薪,精确到小数点后2位。

输入样例1:

  1. 5 40

输出样例1:

  1. 2000.00

输入样例2:

  1. 3 50

输出样例2:

  1. 1650.00

思路

常见的分段函数用于阶梯计价,对于新人而言:

对于老员工而言:


代码

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. float junior(int hours) {
  5. if (hours <= 40) return 30 * hours;
  6. return 30 * 40 + 30 * 1.5 * (hours - 40);
  7. }
  8. float senior(int hours) {
  9. if (hours <= 40) return 50 * hours;
  10. return 50 * 40 + 50 * 1.5 * (hours - 40);
  11. }
  12. int main() {
  13. int years = 0, hours = 0;
  14. cin >> years >> hours;
  15. if (years >= 5)
  16. printf("%.2f\n", senior(hours));
  17. else
  18. printf("%.2f\n", junior(hours));
  19. return 0;
  20. }