为了账号安全,请及时绑定邮箱和手机立即绑定

PHP初级算法题-应用类

标签:
PHP 算法

图片描述
第五题 递归法实现n的阶乘
第六题 随机生成双色球算法
图片描述
由于时间有限 未进行时间和空间复杂度的优化,后期完善
第一题:
<?php
function tableNum(){
for($i=9;$i>0;$i--){
for($j=9;$j>=$i;$j--)
{
echo $i. '' .$j. '=' .$i$j.'   ';
}
echo "<br>";
}
}
tableNum();
第二题:
<?php
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.'<br>';
getComWith($num);
页面输出:
数字:2678.3
26张100元 1张50元 1张20元 1张5元 3张1元 3张0.1元
第三题:
<?php
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
第四题:
<?php
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
第五题 递归法实现n的阶乘
function jiecheng($n){
if($n==1){
$data = $n;
return $data;
}
$data = $n*jiecheng($n-1);
return $data;
}
echo '<br>';
echo jiecheng(10);
第六题随机生成双色球
function randomNum(){
$red = range(0, 33);
unset($red[0]);//删除下标为0的第一个元素,因为array_rand() 函数返回数组中的随机键名而不是键值
$blue = mt_rand(1, 16);//随机产生的蓝色的球号
$red_6 = array_rand($red, 6);//取出六个红色球
$result = implode(',',$red_6).'|'.$blue;
return $result;
}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
PHP开发工程师
手记
粉丝
104
获赞与收藏
364

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消