计算按小时的现金,8小时内每小时3美元,超过8小时每小时增加5美元。不使用“if”。
2015-10-8 17:6:51
收藏:0
阅读:95
评论:2
如标题所述,我想在 Lua 上使用数学函数来计算: 如果一个人工作 8 小时,他每小时得到 3 美元的报酬。 在超过 8 小时的任何额外时间,他每小时得到 5 美元的报酬。
只能使用 math.abs 和 math.floor 函数。不使用 if 语句。这对我来说是一个挑战,我失败了,希望你可以做到 :)
点赞
用户7632578
我在这个函数中的所有逻辑中使用了math.floor(hours/8.1)。我是通过使用这个魔幻数字来乘以基于逻辑的数字的方式来实现的,这将评估为0(如果工作时间小于8.1小时),或1(如果工作时间为8.1小时或更长时间)。当然,如果您使用超过16小时的工作时间,它将开始以2倍的时间计算加班费用,但如果您工作了16个小时,您可能应该得到双倍的加班费 ;)
我使用8.1而不是8,这样逻辑就不会在8小时的工作日触发,只会在8小时以上的工作日上触发。其余代码都很简单(只是尝试忽略我过多使用括号)
function calculatePay(hours)
return (3*hours)+((2*math.floor(hours/8.1))*((hours-8)*math.floor(hours/8.1)))
end
print(calculatePay(6)) -- 6*3是18元的常规工资,没有加班费
print(calculatePay(8)) -- 8*3是24元的常规工资,没有加班费
print(calculatePay(10)) -- 10*3是30元的常规工资,加4元(2*2)的加班费
print(calculatePay(12)) -- 12*3是36元的常规工资,加8元(4*2)的加班费
2017-02-28 00:27:50
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
假设工作小时数的变量为
h。那么,您有以下内容:cash = h * 3 + (h <= 8 and 0 or (h - 8) * 2)