1、首先来画个菱形玩玩,很多人学 C 时在书上都画过,咱们用 PHP 画下,画了一半。
思路:多少行
for 一次,然后在里面空格和星号 for 一次。
<?php
for($i=0;$i<=3;$i++){
for($j=0;$j<=3-$i;$j++){
echo ' ';
}
for($k=0;$k<=2*$i;$k++){
echo '*';
}
echo '<br/>';
}
2、冒泡排序,C 里基础算法,从小到大对一组数排序。
……
思路:这题从小到大,第一轮排最小,第二轮排第二小,第三轮排第三小,依次类推
<?php
$arr = array(3, 2, 1);
$n = count($arr);
//每循环一次,就跑一趟后面的排序
for($j=0; $j<$n-1; $j++) {
//对后面没排好的,循环查找出最大(最小)的,进行一趟排序
for($i=$j; $i<$n-1; $i++) {
if($arr[$j] > $arr[$i+1]) {
$t = $arr[$j];
$arr[$j] = $arr[$i+1];
$arr[$i+1] = $t;
}
}
}
print_r($arr);
3、杨辉三角,用 PHP 写。
思路:每一行的第一位和最后一位是
1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组
保存,另外有种算法用一维数组也可以实现,一行一行的输出,有兴趣去写着玩下。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
<?php
//每行的第一个和最后一个都为 1,写了 6 行
for($i=0; $i<6; $i++) {
$a[$i][0]=1;
$a[$i][$i]=1;
}
//出除了第一位和最后一位的值,保存在数组中
for($i=2; $i<6; $i++) {
for($j=1; $j<$i; $j++) {
$a[$i][$j] = $a[$i-1][$j-1]+$a[$i-1][$j];
}
}
//打印
for($i=0; $i<6; $i++){
for($j=0; $j<=$i; $j++) {
echo $a[$i][$j].' ';
}