首页 > 其他分享 >2.企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;

2.企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;

时间:2024-09-08 21:56:05浏览次数:7  
标签:10 提成 bonus profit tiers 10% 奖金 利润

【程序 2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%; 利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可提成 7.5%; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5%; 40 万到 60 万之间时高于40 万元的部分,可提成 3%; 60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: 方法一:

# 定义各个阶梯的基准奖金
bonus1 = 100000 * 0.1
bonus2 = bonus1 + 100000 * 0.075  # 这里修正了错误的提成比例
bonus4 = bonus2 + 200000 * 0.05
bonus6 = bonus4 + 200000 * 0.03
bonus10 = bonus6 + 400000 * 0.015

# 从用户输入获取利润值
i = int(input('请输入利润:\n'))  # 在Python 3中使用input代替raw_input

# 根据利润计算奖金
if i <= 100000:
    bonus = i * 0.1
elif i <= 200000:
    bonus = bonus1 + (i - 100000) * 0.075
elif i <= 400000:
    bonus = bonus2 + (i - 200000) * 0.05
elif i <= 600000:
    bonus = bonus4 + (i - 400000) * 0.03
elif i <= 1000000:
    bonus = bonus6 + (i - 600000) * 0.015
else:
    bonus = bonus10 + (i - 1000000) * 0.01

# 输出奖金
print('奖金 =', bonus)

# 现在,代码的逻辑是这样的:
# 首先,计算出各个利润阶梯的基准奖金(即达到该阶梯下限时的奖金)。
# 然后,通过用户输入获取利润值。
# 接下来,使用一系列的 if-elif 语句来根据利润值计算奖金。每个 elif 块都对应一个利润阶梯,并计算出在该阶梯内的额外奖金。
# 最后,输出计算得到的奖金。
# 请注意,这段代码假设用户输入的是一个整数。如果您希望支持浮点数输入(即带有小数的金额),您应该将 int(input(...)) 替换为 float(input(...))。同时,由于奖金计算涉及到货币,因此在实际应用中可能需要考虑四舍五入到适当的小数位数,以确保结果的准确性。

方法二:

# 这个问题可以通过编写一个函数来解决,该函数接收利润值作为输入,并根据给定的提成规则计算奖金。以下是一个可能的 Python 解决方案:
def calculate_bonus(profit):
    # 定义提成阶梯和对应的提成比例
    tiers = [1000000, 600000, 400000, 200000, 100000, 0]
    rates = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]

    bonus = 0  # 初始化奖金为0
    for i in range(len(tiers)):
        if profit > tiers[i]:
            bonus += (profit - tiers[i]) * rates[i]  # 计算当前阶梯的奖金
            profit = tiers[i]  # 更新利润为当前阶梯的上限

    return bonus


# 从键盘输入当月利润
profit_input = input("请输入当月利润(单位:元):")
profit = float(profit_input)  # 将输入的字符串转换为浮点数

# 计算并输出应发放奖金总数
bonus = calculate_bonus(profit)
print(f"应发放奖金总数为:{bonus} 元")

# 注意:这个解决方案假设输入的利润是非负整数或浮点数。如果输入可能是负数或无效值,你可能需要添加额外的错误检查和处理逻辑。
# 另外,这个解决方案使用了长整型的概念,但在 Python 3 中,整数类型是无限精度的,所以不需要特别声明为长整型。如果你在使用其他编程语言,可能需要注意整数类型的大小限制。
# 解释:
# tiers 列表包含了各个提成阶梯的上限值,从高到低排列。
# rates 列表包含了与 tiers 对应的提成比例。
# calculate_bonus 函数通过遍历 tiers 和 rates,计算每个阶梯的奖金,并累加到 bonus 变量中。在每个阶梯,它都会检查利润是否超过了该阶梯的上限,如果是,则计算超出部分的奖金,并更新利润为当前阶梯的上限。这样,到下一个循环迭代时,它只会处理剩余未提成的利润部分。

  

  

标签:10,提成,bonus,profit,tiers,10%,奖金,利润
From: https://www.cnblogs.com/liu-zhijun/p/18403554

相关文章

  • GYM 105264 E
    题目描述给定一个\(N\)个点的树,你要从中选出一个大小为\(k\)的子树出来,求这个子树的最小直径。思路由于此题允许\(O(N^2)\)的时间复杂度,所以考虑枚举子树的中心。接着以该中心为根向下搜出深度为\(i\)的结点数\(cnt_i\),接着枚举直径长度除\(2\)。由于这里直径可能长......
  • 独孤思维:写作10万字,为什么还没赚到钱
    有读者问我,独孤,为什么你这么能坚持写作?其实独孤从小到大,能够坚持下来的,好像只有写作了。小学听老师的话,想要提高写作能力,每天写日记。中学那会开始写科幻小说,还去了出版社,想要出版。大学那会写言情,恐怖,然后发邮箱给杂志社,要参加小说比赛。工作了写自媒体。即便当时没有出......
  • GYM 105264 C
    题目描述给定一个长度为\(N\)的数组\(A\),每次你可以令\(A_i\leftarrowA_i+1\)或\(A_i-1\)。求进行至多\(k\)次操作后\(A\)中最少不同元素数量。思路首先对\(A\)进行排序。令\(dp_{i,j}\)表示考虑前\(i\)个数,有\(j\)个不同的值时最多还能剩余几次操作。很......
  • TensorRT-For-YOLO-Series项目:实现yolov10模型的python-tensorrt推理(对比int8与fp16推
    项目地址:https://github.com/Linaom1214/TensorRT-For-YOLO-Series/tree/cuda-python算法支持状态:2024.6.16SupportYOLOv9,YOLOv10,changingtheTensorRTversionto10.02023.8.15Supportcuda-python2023.5.12Update2023.1.7supportYOLOv82022.11.29fixs......
  • 代码随想录训练营 Day53打卡 图论part04 110. 字符串接龙 105. 有向图的完全可达性 10
    代码随想录训练营Day53打卡图论part04一、卡码110.字符串接龙本题与力扣127题是一样的,所以这里使用力扣127题。字典wordList中从单词beginWord到endWord的转换序列是一个按下述规格形成的序列beginWord->s1->s2->…->sk:    每一对相邻的单词只......
  • 【Django开发】django美多商城项目完整开发4.0第10篇:收货地址,数据库建表【附代码文档
    本教程的知识点为:项目准备项目准备配置1.修改settings/dev.py文件中的路径信息2.INSTALLED_APPS3.数据库用户部分图片1.后端接口设计:视图原型2.具体视图实现用户部分使用Celery完成发送判断帐号是否存在1.判断用户名是否存在后端接口设计:用户部分JWT什......
  • 使用微信小程序-云开发时报错: Error: errCode: -401003 api parameter type error |
    错误Uncaught(inpromise)thirdScriptErrorerrCode:-401003apiparametertypeerror|errMsg:parameter.datashouldbeobjectinsteadofundefined;Error:errCode:-401003apiparametertypeerror|errMsg:parameter.datashouldbeobjectinsteadofundef......
  • 视野修炼-技术周刊第100期 | CSS observer
    欢迎来到第100期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • 南沙信C++陈老师解一本通题:1310:【例2.2】车厢重组
    ​【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列......
  • 图论篇--代码随想录算法训练营第五十三天打卡| 110. 字符串接龙,105.有向图的完全可达
    110.字符串接龙题目链接:110.字符串接龙题目描述:字典strList中从字符串beginStr和endStr的转换序列是一个按下述规格形成的序列: 序列中第一个字符串是beginStr。序列中最后一个字符串是endStr。 每次转换只能改变一个字符。 转换过程中的中间字符串必须是字典......