我正面临一个小凹凸打印数字金字塔,仍然是PHP和编程的新手

时间:2014-01-22 08:05:10

标签: php

我想要打印的是

1

3 5

7 9 11

使用我当前的代码,即......

<?php

function Odd($limit='20'){

$c = 1;
while($c <= $limit){
if ($c % 2!=0){
echo $c ;
echo "<br/>";
}
$c++ ;

}
}
Print Odd();
?> 
我得到了 1 3 五 7 9 11

有人可以指导我正确的方式吗?

3 个答案:

答案 0 :(得分:2)

Aaah ......好的。^^现在我明白了。

非常简单:你需要另一个计数的变量和一个限制断裂位置的变量。看起来像这样:

<?php

function Odd($limit='40'){

    $c = 1;
    $count = 0;
    $break = 1;

    while($c <= $limit){
        if ($c % 2!=0){
            echo $c . " ";
            $count++;

            if($count === $break) {
                echo "<br/>";
                $break++;
                $count = 0;
            }
        }
        $c++ ;

    }
}
Print Odd();
?>

输出到40:

1
3 5
7 9 11
13 15 17 19
21 23 25 27 29
31 33 35 37 39 

编辑:新请求的代码:

<?php

function Odd($limit='40'){

$c = 1;
$count = 0;
$break = 1;

while($c <= $limit){
        echo $c . " ";
        $count++;
        if($count === $break) {
            echo "<br/>";
            $break++;
            $count = 0;
        }
    $c++ ;

    }
}
Print Odd();
?>

答案 1 :(得分:1)

因此,如果我理解正确,您希望输出类似的内容:
1个
3 5
7 9 11
13 15 17 19

这是我的解决方案:

function Odd($limit='20'){
$c = 1;$some_array = array();
while($c <= $limit){
    if ($c % 2!=0){
        $some_array[]=$c; 
    }
    $c++ ;

}
return $some_array;

}

$array = Odd();
$nr =0; 
$j=1;
foreach ($array as $key => $value) {
echo $value.'&nbsp;';$nr++;
if($nr==$j){
    echo '<br />';
    $nr=0;
    $j++;
}
}

希望这有帮助!

答案 2 :(得分:0)

从你的问题看,你似乎对编程很陌生,所以在编写任何程序之前首先要正确地观察问题:

例如,对于上面的问题,很明显这是一个奇数的三角形。

现在每行的奇数个数等于该行 即第一行包含1个数字,第二行包含2,它继续......

现在我们要做的是使用一个变量来计算行数,如$ row,另一行为$limit

<?php
function odd($limit){
    $row=1;
    $current_number=1;
    while($current_number<=$limit){
        for($i=1;$i<=$row;$i++){
            echo $current_number." ";
            $current_number=$current_number+2;//incrementing numbers by 2 if you want to increment by 1 i.e print all numbers replace 2 by 1
        }
        $row++;
        echo "<br/>";//for new line
    }
}

要运行以上功能,您需要调用它并传递$limit的值。要执行此操作,只需键入此函数之外的任何位置。

odd(20);

观看正在运行的here