-->

PHP资讯

您的当前位置:首页 > 资讯 > PHP基础

PHP经典算法(七)

2019-12-18 09:33:20  来源:admin 点击:795

【程序8】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。   

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。   


这里不把排序当做考察点,排序的话可以使用冒泡,快速,插入等排序算法,这里使用了三种交换变量的方式,我感觉这才是重要的


public function actionSortX()
{
    $x = 6;
    $y = 53;
    $z = 6;
    if($x>$y) // $y<$x
    {
        $x = $x+$y;
        $y = $x-$y;
        $x = $x-$y;
    }
    if($x>$z)
    {
        $tmp = $x;
        $x = $z;
        $z = $tmp;
    }

    if($y>$z)
    {
        $tmp = $y . '-' .$z;
        $tmp = explode('-',$tmp);
        $y = $tmp[1];
        $z = $tmp[0];
    }
    echo $x,',',$y,',',$z;
}



【程序9】 题目:输出9*9口诀。   
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。   


public function actionMultiplicationTable()
{
    for ($i=1;$i<=9;$i++)
    {
        for ($j=1;$j<=$i;$j++)
        {
            echo $j . '*' .$i .'=' . $i*$j;
            echo ' ';
        }
        echo "<br>";
    }
}



【程序10】   题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。   
1.程序分析:请抓住分子与分母的变化规律。  


public function actionAddFraction()
{
    $sum = 0;
    $numerator = [2,3];
    $denominator = [1,2];
    // 根据规律获得所有的分子和分母
    for ($i=2;$i<20;$i++)
    {
        $numerator[$i] = $numerator[$i-2] + $numerator[$i-1];
        $denominator[$i] = $denominator[$i-2] + $denominator[$i-1];
    }
    // 获得分数的前n项和
    for ($i=0;$i<20;$i++)
    {
        $sum += $numerator[$i] / $denominator[$i];
    }
    var_dump($sum);
}



【程序11】   题目:求1+2!+3!+...+20!的和   
1.程序分析:此程序只是把累加变成了累乘。  
 


public function actionAddFactorial()
{
    $n = 20;
    $sum = 0;
    for ($i=1;$i<=$n;$i++)
    {
        $num = 1;
        for ($j=1;$j<=$i;$j++)
        {
            $num = $j*$num;
        }
        $sum += $num;
    }
    var_dump($sum);
}



相关文章更多 >

© 2024版权所有 水水网

电话:171780793