如何更优雅编码、更优算法 | 阶梯式电费算法 | 非常感谢、请指教~

电费的阶梯式算法

?笑:-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阶梯电费,如何更优雅编码、更优算法 | 阶梯式电费算法 | 非常感谢、请指教~...相关推荐

  1. struts2前台获取setattribute为空指针异常_告诉你,这样设计 Java 异常更优雅,更牛逼!...

    来源:Lrwin lrwinx.github.io/2016/04/28/如何优雅的设计java异常/ 导语 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据 ...

  2. python优雅代码大全_10个Python技巧帮你写出更优雅的代码

    阅读本文需要 2 分钟,公众号 somenzz ,欢迎学习 Python 的朋友订阅. 现在写代码的门槛非常低了,少儿都开始编程了,但从代码的风格一眼看出编码水平.是的,写代码是容易的,写出易读的代码 ...

  3. 更优雅的编写JavaScript,使用这些函数秒变大神

    如果你刚接触JavaScript可能你还没有听说过.map(),.reduce(),.filter().或者听说过,看过别人用过但是自己在实际项目中没有用过.在国内很多开发项目都是需要考虑IE8的兼容 ...

  4. 使java代码更干净_java如何使用Lombok更优雅地编码

    Lombok简介 和其他语言相比,Java经常因为不必要的冗长被批评.Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁.较少的模板意味着更简洁的代码, ...

  5. 如何更优雅地对接第三方API

    如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...

  6. 如何写出更优雅的代码——编程范式简述

    <如何写出更优雅的代码--编程范式简述>源站链接,阅读体检更佳! 什么是程序? 1976年,瑞士计算机科学家,Algol W,Modula,Oberon 和 Pascal 语言的设计师 N ...

  7. Kubernetes更优雅的监控工具Prometheus Operator

    Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...

  8. 9条消除if...else的锦囊妙计,助你写出更优雅的代码

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说 ...

  9. 教你如何更优雅的设计Java异常

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:lrwinx https://lrwinx.github.i ...

最新文章

  1. 未来企业IT选型将更关注社交性(转载)
  2. 一文了解推荐系统中的图神经网络
  3. DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...
  4. 字节跳动ClickHouse在用户增长分析场景的应用
  5. module_init 详解
  6. [Linux基础环境/软件]Linux下安装resin web服务器(涉及gcc、jdk环境部署)
  7. Oracle入门(十四.15)之捕获Oracle服务器异常
  8. 企业实战(Jenkins+GitLab+SonarQube)_06_Jenkins自定义安装插件
  9. Ext JS 3.2.0发布(转)
  10. DOS 入侵、群发邮件、心脏起搏器……病毒攻击简史!
  11. spring和mybatis结合做简单的增删查改系统_搭建后台系统权限系统的经验总结
  12. python实现两个任意字符串乘积
  13. 后RCNN时代的物体检测及实例分割进展
  14. python里的PYTHONPATH是干什么用的?
  15. C语言课程设计之图书管理系统
  16. magento yandex插件 moneta插件 qiwi插件 俄罗斯银行
  17. 将一个文件夹下的多个目录生成txt文本,并且写入到Excel中
  18. 利用three建立一个3d园区
  19. 杭漂多年是时候画个句号呢
  20. 【Android安全】安卓app爬虫工具 | 混淆检测工具

热门文章

  1. 卷积运算(CNN卷积神经网络)
  2. linux平铺窗口管理器,5个大的平铺窗口管理器为Linux | MOS86
  3. SiamGAT:Graph Attention Tracking
  4. react中实现页面跳转
  5. 006 二项分布、泊松分布、几何分布、指数分布、正态分布习题
  6. VS 2008 JavaScript 调试(待译)
  7. 瑞芯微 TB-RK3399Pro --基于YOLOv4的销钉缺陷检测(Detection of Pin Defects)
  8. 长安马自达CX-5减价增配 为您提供更多选择
  9. 文献综述的写作原则有哪些?
  10. 每次我不想好好学习的时候,就看看这个。。。