一、问题链接
CSP 201612-2 工资计算
二、参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
double ti;
cin>>ti;
array<double,9>s{0,3500,5000,4500+3500,9000+3500,35000+3500,55000+3500,80000+3500,INT_MAX};
array<double,9>tax{0,0,0.03,0.1,0.2,0.25,0.3,0.35,0.45};
array<double,9> t{};
for(int i=1;i<9;i++){
t[i]=t[i-1]+(s[i]-s[i-1])*(1-tax[i]);
}
auto i = find_if(t.begin(),t.end(),[ti](double a){return ti<=a;}) - t.begin();
cout<<(ti-t[i-1])/(1-tax[i]) + s[i-1];
return 0;
}