我正在尝试使用for循环来制作看起来像钻石形状的形状。
<?php
for($i=0;$i<=9;$i++){
for ($d=10-$i; $d > 0; $d--) {
echo " ";
}
for($j=1;$j<=$i;$j++){
echo " ".$i." ";
}
echo "<br>";
}
for($i=8;$i>=1;$i--){
for ($d=0; $d <= 9-$i; $d++) {
echo " ";
}
for($j=$i;$j>=1;$j--){
echo " ".$i." ";
}
echo "<br>";
}
?>
它看起来像什么:
我想要的是什么:
我需要帮助。 谢谢
答案 0 :(得分:1)
我会在这里发布,因为我很开心。感觉像是再次学习基础知识。
<?php
$max_size = 9;
function createSpaces($n){
$spaces = '';
for($i = 0; $i < $n; $i++){
$spaces .= ' '; //change to ' ' for HTML
}
return $spaces;
}
function createRows($i, $max_size){
$row = '';
$row .= createSpaces($max_size - $i);
for($j = 1; $j <= ($i-1); $j++){
$row .= $j;
}
for($k = $i; $k >= 1; $k--){
$row .= $k;
}
$row .= createSpaces($max_size - $i);
echo $row . PHP_EOL; //change PHP_EOL to '<br>' for HTML
}
for($i = 1; $i <= $max_size; $i++)
{
createRows($i, $max_size);
}
for($i = ($max_size - 1); $i >= 1; $i--)
{
createRows($i, $max_size);
}
Javascript版本:
var max_size = 9;
function createSpaces(x) {
var spaces = '';
for (var i = 0; i < x; i++) {
spaces += ' ';
}
return spaces;
}
function createRow(i, max_size) {
var row = '';
row += createSpaces(max_size - i);
for (var j = 1; j <= (i - 1); j++) {
row += j;
}
for (var k = i; k >= 1; k--) {
row += k;
}
row += createSpaces(max_size - i);
document.write(row + '<br>');
}
for (var i = 1; i <= max_size; i++) {
createRow(i, max_size)
}
for (var i = (max_size - 1); i >= 1; i--) {
createRow(i, max_size)
}
&#13;
<style>
body {
font-family: monospace;
}
</style>
&#13;
答案 1 :(得分:0)
这是一个类似的版本,您只需要调用一次该函数。
function diamond($max){
$result = '<p style="text-align:center">';
$last = 0;
for($i=1;$i<=$max;$i++){
for($x=1;$x<=$i;$x++){
$last=$x;
$result .= $last;
}
for($y=$last-1;$y>=1;$y--){
$result .= $y;
}
$result .= "<br />";
}
for($i=$max-1;$i>=1;$i--){
for($x=1;$x<=$i;$x++){
$last=$x;
$result .= $last;
}
for($y=$last-1;$y>=1;$y--){
$result .= $y;
}
$result .= "<br />";
}
$result .= "</p>";
return $result;
}
echo diamond(9);
echo diamond(7);
echo diamond(10);