php阶梯电费,如何更优雅编码、更优算法 | 阶梯式电费算法 | 非常感谢、请指教~...
如何更优雅编码、更优算法 | 阶梯式电费算法 | 非常感谢、请指教~
电费的阶梯式算法
?笑:-D~ 倒序进行中,如何更加优雅、使用更少的代码,甚至更优的算法呢?
常常会见到这种场景:
举个栗子,深圳为了推进市民节约用电推出了这样一个用电收费政策,电量使用阶梯式递增的收费计算方式,简单而言、用电越多平均的每度电越贵。(假设用户的每电量为整数,小于1度电则应缴费为0元)
计算电费的剃度表如下所示:
耗电范围(°)
电费计算(1元/°)1<=x<=10
1
11<=x<=20
1.2
21<=x<=50
1.4
51<=x<=100
1.8
101<=x<=300
2.4
301<=x
5
一般的算法如下。感谢更优的代码方案~
/**
* 根据用电的度数计算电费
* @param int $number 用电度数
* @return float 电费
*/
function calculate(int $number): float
{
if ($number <= 0) {
return 0;
}
switch ($number) {
case 1 <= $number && $number <= 10:
return $number * 1;
break;
case 11 <= $number && $number <= 20:
return ($number - 10) * 1.2 + calculate(10);
break;
case 21 <= $number && $number <= 50:
return ($number - 20) * 1.4 + calculate(20);
break;
case 51 <= $number && $number <= 100:
return ($number - 50) * 1.8 + calculate(50);
break;
case 101 <= $number && $number <= 300:
return ($number - 100) * 2.2 + calculate(100);
break;
default:
return ($number - 300) * 5 + calculate(300);
break;
}
}
不定维数组的排序(键名)
如何优雅高效地将一个不定维数组按照键名排序。
// 如下为不定维数组变量
$data = [
'amount' => 100,
'quota' => 100000000,
'applicant' => [
'name' => 'alicfeng',
'sex' => 'M',
'age' => 21,
'certificate' => [
'number' => '441701995********',
'start_date' => '20080808',
'end_date' => '20280808'
]
],
'family' => [
'number' => 5,
'feel' => 'nice'
]
];
本作品采用《CC 协议》,转载必须注明作者和本文链接
php阶梯电费,如何更优雅编码、更优算法 | 阶梯式电费算法 | 非常感谢、请指教~...相关推荐
- struts2前台获取setattribute为空指针异常_告诉你,这样设计 Java 异常更优雅,更牛逼!...
来源:Lrwin lrwinx.github.io/2016/04/28/如何优雅的设计java异常/ 导语 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据 ...
- python优雅代码大全_10个Python技巧帮你写出更优雅的代码
阅读本文需要 2 分钟,公众号 somenzz ,欢迎学习 Python 的朋友订阅. 现在写代码的门槛非常低了,少儿都开始编程了,但从代码的风格一眼看出编码水平.是的,写代码是容易的,写出易读的代码 ...
- 更优雅的编写JavaScript,使用这些函数秒变大神
如果你刚接触JavaScript可能你还没有听说过.map(),.reduce(),.filter().或者听说过,看过别人用过但是自己在实际项目中没有用过.在国内很多开发项目都是需要考虑IE8的兼容 ...
- 使java代码更干净_java如何使用Lombok更优雅地编码
Lombok简介 和其他语言相比,Java经常因为不必要的冗长被批评.Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁.较少的模板意味着更简洁的代码, ...
- 如何更优雅地对接第三方API
如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...
- 如何写出更优雅的代码——编程范式简述
<如何写出更优雅的代码--编程范式简述>源站链接,阅读体检更佳! 什么是程序? 1976年,瑞士计算机科学家,Algol W,Modula,Oberon 和 Pascal 语言的设计师 N ...
- Kubernetes更优雅的监控工具Prometheus Operator
Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...
- 9条消除if...else的锦囊妙计,助你写出更优雅的代码
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说 ...
- 教你如何更优雅的设计Java异常
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:lrwinx https://lrwinx.github.i ...
最新文章
- 未来企业IT选型将更关注社交性(转载)
- 一文了解推荐系统中的图神经网络
- DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...
- 字节跳动ClickHouse在用户增长分析场景的应用
- module_init 详解
- [Linux基础环境/软件]Linux下安装resin web服务器(涉及gcc、jdk环境部署)
- Oracle入门(十四.15)之捕获Oracle服务器异常
- 企业实战(Jenkins+GitLab+SonarQube)_06_Jenkins自定义安装插件
- Ext JS 3.2.0发布(转)
- DOS 入侵、群发邮件、心脏起搏器……病毒攻击简史!
- spring和mybatis结合做简单的增删查改系统_搭建后台系统权限系统的经验总结
- python实现两个任意字符串乘积
- 后RCNN时代的物体检测及实例分割进展
- python里的PYTHONPATH是干什么用的?
- C语言课程设计之图书管理系统
- magento yandex插件 moneta插件 qiwi插件 俄罗斯银行
- 将一个文件夹下的多个目录生成txt文本,并且写入到Excel中
- 利用three建立一个3d园区
- 杭漂多年是时候画个句号呢
- 【Android安全】安卓app爬虫工具 | 混淆检测工具
热门文章
- 卷积运算(CNN卷积神经网络)
- linux平铺窗口管理器,5个大的平铺窗口管理器为Linux | MOS86
- SiamGAT:Graph Attention Tracking
- react中实现页面跳转
- 006 二项分布、泊松分布、几何分布、指数分布、正态分布习题
- VS 2008 JavaScript 调试(待译)
- 瑞芯微 TB-RK3399Pro --基于YOLOv4的销钉缺陷检测(Detection of Pin Defects)
- 长安马自达CX-5减价增配 为您提供更多选择
- 文献综述的写作原则有哪些?
- 每次我不想好好学习的时候,就看看这个。。。