求阶梯型的服务费总和

在一次面试php开发工程师中我遇到这道题目,是笔试中最后一道题目

有一个服务平台,提供服务需要收取用户使用的服务费,但是服务费的收取跟订单数量是有个阶梯关系的,请根据以下这个收费标准计算一个指定订单数量的平台服务费总和,假如用户下了8个订单该用户需要支付多少服务费?
示列给定:

订单数服务费
1-531
6-1030
11-5027
51-20024
201-100018
1001-500015
5001-1000012
>=1000010

因为 5*31+3*30=155+90=245
所以,该用户需要支付245元人民币的服务费

当时的解题思路

我当时面试的时候也没有想到更好的方式,我的解题思路是将这个阶梯关系按照对应的解题价格生成一个大的数组,如果有8单就是计算数组下标0一直到7下标的数组元素的和来得到收取费用的,如果大于最大的阶梯的数量再另外判断计算下。如果有更好的解题思路,希望大家积极分享

目的

我想贡献这道题的原因是想通过大家的智慧找到更多的解决方法,从而也能够从中学习到新的解决思路。欢迎大家使用php代码写个算法实现下


交互式爱情
浏览 426回答 2
2回答

拉风的咖菲猫

应该和个税一样啊弄个 速算 扣除数 就行了。。。订单数  服务费  速算扣除单数[fc]  速算扣除数[fd] 1-5        31                0              0 6-10       30                5            155 = 5 * 31 11-50      27               10            305 = 5 * 31 + 5 * 30 51-200     24               50           1385 = 5 * 31 + 5 * 30 + 40 * 27所以 服务费 fee = (单数 - 对应的 速算扣除单数[fc]) * 对应的 服务费 + 速算扣除数[fd]

烙印99

这不是和上税一个思路嘛
打开App,查看更多内容
随时随地看视频慕课网APP