查看: 2267|回复: 0

[PHP代码] PHP初级算法题-应用类

发表于 2018-4-8 08:00:03

图片描述
图片描述
由于时间有限 未进行时间和空间复杂度的优化,后期完善
第一题:
function tableNum(){
for($i=9;$i>0;$i--){
for($j=9;$j>=$i;$j--)
{
echo $i. '' .$j. '=' .$i$j.' ';
}
echo "
";
}
}
tableNum();
第二题:
function getComWith($num){
$data = array(100,50,20,10,5,1,0.5,0.1);
$n = 0; $i = 0;
while($num >0 && $i<30){
if($num>=100){
$n = intval($num/100);
$num -= $n100;
echo $n.'张100元 ';
}else if($num>=50){
$n = intval($num/50);
$num -= $n
50;
echo $n.'张50元 ';
}else if($num>=20){
$n = intval($num/20);
$num -= $n20;
echo $n.'张20元 ';
}else if($num>=10){
$n = intval($num/10);
$num -= $n
10;
echo $n.'张10元 ';
}else if($num>=5){
$n = intval($num/5);
$num -= $n5;
echo $n.'张5元 ';
}else if($num>=1){
$n = intval($num/1);
$num -= $n
1;
echo $n.'张1元 ';
}else if($num>=0.5){
$n = intval($num/0.5);
$num -= $n0.5;
echo $n.'张10元 ';
}else if($num>=0.1){
$n = intval($num/0.1);
$num -= $n
0.1;
echo $n.'张0.1元 ';
}
$i++;
}
}
$num = 2678.3;
echo '数字:'.$num.'
';
getComWith($num);
页面输出:
数字:2678.3
26张100元 1张50元 1张20元 1张5元 3张1元 3张0.1元
第三题:
function getLineMoney($start,$end){
$data = array(1,2,3,4,5,6,7);
$money = 0;
while($start<$end){
switch($start){
case 1:
$money += 60;
$start++;
break;
case 2:
$money += 50;
$start++;
break;
case 3:
$money += 40;
$start++;
break;
case 4:
$money += 36;
$start++;
break;
case 5:
$money += 34;
$start++;
break;
case 6:
$money += 89;
$start++;
break;
}
}
return $money;
}
echo '广州到澳门费用:';
echo getLineMoney(2,6);
?>
页面输出:
广州到澳门费用:160
第四题:
function getSecond($data){
$num = array();
$keyone = 0;
$keytwo = 0;
foreach($data as $k=>$v){
if(!$num){
$num[0] = $v;
$num1 = 0;
$keyone = $k;
}
if($v>$num[0]){
$num1 = $num[0];
$num[0] = $v;
$keytwo = $keyone;
$keyone = $k;
}else if($v>$num1){
$num1 = $v;
$keytwo = $k;
}
}
return $keytwo;
}
$data = array(4=>12,1=>6,7=>66,77=>99,1=>55,2=>3);
echo '数组array(4=>12,1=>6,7=>66,77=>99,1=>55,2=>3):';
echo getSecond($data);
?>
页面输出:
数组array(4=>12,1=>6,7=>66,77=>99,1=>55,2=>3):7



回复

使用道具 举报