201612-2 工资计算

简介: 201612-2 工资计算

201612-2 工资计算

  • C++
  • 枚举
  • 二分
  • 总结


本题链接201612-2 工资计算

本博客给出本题截图

image.png

C++

两种方法,枚举或二分

枚举

#include <iostream>
#include <algorithm>
using namespace std;
int get(int x)
{
    if (x <= 3500) return x;
    int a[] = {0, 1500, 4500, 9000, 35000, 55000, 80000, 1000000};
    int b[] = {0, 3, 10, 20, 25, 30, 35, 45};
    x -= 3500;
    int tax = 0;
    for (int i = 1; i < 8; i ++ )
        if (x >= a[i - 1])
            tax += (min(x, a[i]) - a[i - 1]) / 100 * b[i];
    return x + 3500 - tax;
}
int main()
{
    int T;
    cin >> T;
    for (int i = 0; ; i += 100)
        if (get(i) == T)
        {
            cout << i << endl;
            break;
        }
    return 0;
}

二分

#include <iostream>
using namespace std;
int get(int n)
{
    if (n <= 3500) return n;
    else
    {
        int a[8] = {0, 1500, 4500, 9000, 35000, 55000, 80000, 1000000000};
        double b[8] = {0, 0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45};
        double res = 0;
        n -= 3500;
        for (int i = 1; i <= 7; i ++ )
            if (a[i] <= n)
                res += (a[i] - a[i - 1]) * b[i];
            else
            {
                res += (n - a[i - 1]) * b[i];
                break;
            }
        return n - res + 3500 + 1e-6;
    }
}
int main()
{
    int n;
    cin >> n;
    int l = 0, r = 1e9;
    while (l < r)
    {
        int mid = l + r >> 1;
        if (get(mid) >= n) r = mid;
        else l = mid + 1;
    }
    cout << r << endl;
    return 0;
}

总结

二分法

二分算法模板


目录
相关文章
|
5月前
|
人工智能
第4章-7 统计学生平均成绩与及格人数
该程序计算一组学生的平均成绩和及格人数。输入包含学生人数N和N个成绩,输出格式为&quot;average = 平均成绩&quot;和&quot;count = 及格人数&quot;。提供的代码首先读取学生数量,然后累加成绩并计数及格者。平均成绩保留一位小数。当学生人数为0时,平均成绩和及格人数分别输出0.0和0。
78 1
|
5月前
7-66 计算工资 (15 分)
7-66 计算工资 (15 分)
57 0
|
5月前
|
算法 前端开发
1873. 计算特殊奖金
1873. 计算特殊奖金
36 0
|
4月前
|
SQL 算法 大数据
深入解析力扣184题:部门工资最高的员工(子查询与窗口函数详解)
深入解析力扣184题:部门工资最高的员工(子查询与窗口函数详解)
wustojc4011计算奖金
wustojc4011计算奖金
46 0
|
10月前
|
机器人
用八爪鱼RPA实现员工薪资管理,轻松拆分发放工资单!
RPA(机器人流程自动化)技术可以极大地压缩、优化现有的员工薪资管理流程。通过使用rpa机器人,可以自动化个税计算和申报,自动化工资单处理和发放等重复性、繁琐的任务。这样可以节省大量人力和时间,提高工作效率,减少错误和延误,提升员工满意度。同时,rpa还可以保证数据的准确性,提高工资管理的合规性,增强企业的信誉。
|
12月前
|
数据库
查询各年龄段人数
查询各年龄段人数
74 0
R7-3 计算个人所得税
R7-3 计算个人所得税
125 0
计算平均成绩
计算平均成绩
73 0
|
测试技术
软件测试工资一般多少 最低7k,最高30k
在当前的信息技术领域中,软件测试已经成为了非常重要的一项工作。它是保证软件质量的一个重要环节,可以确保软件产品的正确性、完整性、可用性等方面的质量。
145 0