以下数组包含特定家庭一年的用电量。
$usage = [
'Jan' => '156',
'Feb' => '125',
'Mar' => '112',
'Apr' => '175',
'May' => '210',
'Jun' => '96',
'Jul' => '123',
'Aug' => '135',
'Sep' => '184',
'Oct' => '159',
'Nov' => '140',
'Dec' => '194',
];
请考虑最多150个单位的每单位充电费用为5 Rs。如果每月使用量超过150个单位的阈值,则超出的单位将按每单位7卢比收费。例如,160个单位的总费用将为(150 * 5)+(10 * 7)= 820 Rs。
如果用户按月和按年计费,则编写一个函数来计算一年的总账单金额。每年结算时,价格较低(5 Rs)可供用户使用的单位总数将为150 * 12 = 1800单位,超出的部分将按照每单位7 RS的费率
进行收费
编辑(要从以下OP的注释中添加代码):
<?php if($units < 150){
$bill = 150 * 5;
$remaining_units= $units -150;
if($remaining_units > 150 ){
$remaining_units= $remaining_units -150;
$bill = $bill + (150* 7);
if($remaining_units > 150 || $remaining_units < 150){
$remaining_units= $remaining_units -100;
$bill = $bill + (150* 7);
我是菜鸟。试图解决随机问题
答案 0 :(得分:1)
$monthly = 0;
foreach($usage as $month => $unit) {
$monthly += $unit > 150 ? (150*5) + (($unit-150)*7) : $unit*5;
}
$annually = array_sum($usage) > 1800 ? (1800*5) + ((array_sum($usage) - 1800)*7) : array_sum($usage)*5;
每月:如果单位大于150,则额外的单位将收取较高的7费率。此计算已在第3行中完成。
每年:类似地,如果单位大于1800,则额外的单位收取较高的7费率。请参阅第5行。
答案 1 :(得分:0)
这是您的代码必须是的。下面的getCostPerMonth计算每个月的账单金额。该函数将单位数作为参数并返回成本。
用电量包含每月花费的电量。
<?php
$usage = [
'Jan' => '156',
'Feb' => '125',
'Mar' => '112',
'Apr' => '175',
'May' => '210',
'Jun' => '96',
'Jul' => '123',
'Aug' => '135',
'Sep' => '184',
'Oct' => '159',
'Nov' => '140',
'Dec' => '194',
];
$bill = 0;
function getCostPerMonth($units) {
if ($units <= 150) {
return $units * 5; // For the first 150 units cost is 5 per unit.
}
else {
// For the first 150 units cost is 5 per unit plus rest units at 7 per unit.
return (150 * 5) + ($units - 150) * 7;
}
}
foreach ($usage as $key => $value) {
$bill += getCostPerMonth($value);
}
echo $bill;
?>