题目:
利润分级,奖金的比例不同,例如10万以内比例10%,10万到20万比例是5%
解法一:
比较简单的方案就是利用if-else,效率也是最高,这里就不写这部分代码了
解法二:
利用数据结构来处理,直接上代码
static BonusCalcLevel Level[] = {
{100000.0, 0.10},
{200000.0-100000.0,0.05},
{400000.0-200000.0, 0.03},
{600000.0-400000.0, 0.015},
{1000000.0-600000.0, 0.007},
{0.0, 0.003}};
void BonusCalcSwitchTestDrive()
{
double income, bonus = 0;
std::cin >> income;
for (int i = 0; i < sizeof(Level)/sizeof(Level[0]); i++)
{
if (income > Level[i].income_th)
{
bonus += Level[i].income_th * Level[i].factor;
income -= Level[i].income_th;
}
else
{
bonus += income *