蓝桥杯-每日刷题-026

奖金提成

一、题目要求

  • 题目描述
    企业发放的奖金根据利润提成。
    利润I低于100000元的奖金可提10%;
    利润高于100000元,低于200000元的(100000<I<=200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7.5%;
    200000<I<=400000时,低于200000部分按前面的方法,高于200000元的部分按5%提成;
    40000<I<=600000元时,高于400000元的部分按3%提成;
    600000<I<=1000000时,高于600000元的部分按1.5%提成;
    I>1000000元的部分按1%提成。
    从键盘输入当月利润I,求应发奖金总数。
  • 输入格式
    输入有若干行,每行一个实数I,表示企业利润。
  • 输出格式
    对应输出可提取的奖金,结果保留整数。
  • 输入样例
    8000
    200000
    1000000
  • 输出样例
    800
    17500
    39500

二、完整代码

cpp 复制代码
#include <iostream>
enum Lirun
{
    one = 100000,
    two = 200000,
    three = 400000,
    four = 600000,
    five = 1000000
};
int main()
{
    int i,sum;
    Lirun l;
    while (std::cin >> i)
    {
        if (i <= one)
            sum = 0.1 * i;
        if (i > one && i <= two)
            sum = 0.1 * one + 0.075 * (i - one);
        if (i > two && i <= three)
            sum = 0.1 * one + 0.075 * (two - one) + 0.05 * (i - two);
        if (i > three && i <= four)
            sum = 0.1 * one + 0.075 * (two - one) + 0.05 * (three - two) + 0.03 * (i - three);
        if (i > four && i <= five)
            sum = 0.1 * one + 0.075 * (two - one) + 0.05 * (three - two) + 0.03 * (four - three)+0.015*(i-four);
        if(i>five)
            sum = 0.1 * one + 0.075 * (two - one) + 0.05 * (three - two) + 0.03 * (four - three) + 0.015 * (five - four)+0.01*(i-five);
        std::cout << sum << std::endl;
    }
}

三、解法解释

因为今天刚学习了枚举,所以就趁热使用一下,其余的也都很基础。

相关推荐
To_OC8 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin21 小时前
lk每日冒险题--数据结构6.27
算法
To_OC1 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者2 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent
kisshyshy2 天前
从递归到迭代,一文吃透二叉树的核心知识与 JavaScript 实现
javascript·算法·代码规范
To_OC2 天前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode