题目描述
ABC 公司决定给员工加薪,加薪情况如下所示:
薪水 涨薪幅度
0 - 400.00 15%
400.01 - 800.00 12%
800.01 - 1200.00 10%
1200.01 - 2000.00 7%
超过 2000.00 4%
读取员工的工资,计算并输出员工的新工资,以及员工增加的收入和涨薪幅度。
输入格式
共一行,包含一个保留两位小数的浮点数。
输出格式
输出格式如下所示:
第一行输出 Novo salario: X,X 表示员工新工资,保留两位小数。
第二行输出 Reajuste ganho: Y,Y 表示员工增加的具体收入数值,保留两位小数。
第三行输出 Em percentual: Z,Z 表示涨薪幅度,注意用百分比表示。
数据范围
0 ≤ 原工资 ≤ 2500.00
输入样例
400.00
输出样例
Novo salario: 460.00
Reajuste ganho: 60.00
Em percentual: 15 %
C++版
算法1(新手判断法:较长)
#include <bits/stdc++.h>
using namespace std;
int main(){
double x;
cin >> x;
if(x >= 0 && x <= 400){
cout << "Novo salario: " << fixed << setprecision(2) << x * 1.15 << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * 1.15 - x << endl;
cout << "Em percentual: 15 %";
} else if(x > 400 && x <= 800){
cout << "Novo salario: " << fixed << setprecision(2) << x * 1.12 << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * 1.12 - x << endl;
cout << "Em percentual: 12 %";
} else if(x > 800 && x <= 1200){
cout << "Novo salario: " << fixed << setprecision(2) << x * 1.1 << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * 1.1 - x << endl;
cout << "Em percentual: 10 %";
} else if(x > 1200 && x <= 2000){
cout << "Novo salario: " << fixed << setprecision(2) << x * 1.07 << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * 1.07 - x << endl;
cout << "Em percentual: 7 %";
} else {
cout << "Novo salario: " << fixed << setprecision(2) << x * 1.04 << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * 1.04 - x << endl;
cout << "Em percentual: 4 %";
}
return 0;
}
算法2(高手数组法:最简)
#include <bits/stdc++.h>
using namespace std;
double a[10] = {1.15, 1.15, 1.12, 1.1, 1.07, 1.07, 1.04, 1.04};
int b[10] = {0, 15, 12, 10, 7, 7, 4, 4};
int main(){
double x;
cin >> x;
int t = (x + 400) / 400;
cout << "Novo salario: " << fixed << setprecision(2) << x * a[t] << endl;
cout << "Reajuste ganho: " << fixed << setprecision(2) << x * a[t] - x << endl;
cout << "Em percentual: " << b[t] << " %";
return 0;
}