この記事の例では、PHP で辺の長さが N である中実および中空のダイヤモンド形状を印刷する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
ソリッドダイヤモンドの計算方法:
$n: 辺の長さ
$i: 0 から始まる現在の行
$rows: 行の総数
上部
前にあるスペースの数 =$n-$i-1
文字数=$i*2+1
下部
前にあるスペースの数 =$i-$n+1
文字数=($rows-$i)*2-1
str_pad を使用して for/while ループを削減します
コードは次のとおりです:
/**
*ソリッドダイヤモンド形状を印刷します
* @param int $n 辺の長さ、デフォルトは 5
* @param String $s 文字が表示されます、デフォルト*
* @return 文字列
*/
関数solidDiamond($n=5, $s='*'){
$str = '';
// 総行数を計算します
$行 = $n*2-1;
// 各行の * を計算するループ
for($i=0; $i
if($i
$str .= str_pad('', ($n-$i-1), ' ').str_pad('', $i*2+1, $s)."rn";
}else{ // 下部
$str .= str_pad('', ($i-$n+1), ' '). str_pad('', ($rows-$i)*2-1, $s);
}
}
$str を返します。
}
エコー '
';
エコーソリッドダイヤモンド(5)
echo '';
コードは次のとおりです:
*
***
*****
*******
*********
*******
*****
***
*
中空ダイヤモンドの計算方法:
$n: 辺の長さ
$i: 0 から始まる現在の行
$rows: 行の合計数
上部
前にあるスペースの数 =$n-$i-1
空きスペースの数 =$i*2+1-2
文字数 = $i*2+1 - 空白の数
下部
前にあるスペースの数 =$i-$n+1
空のスペースの数 = ($rows-$i)*2-1-2
文字数 = ($rows-$i)*2-1 - 空白の数
コードは次のとおりです:
/**
* 中空ダイヤモンド形状を印刷します
* @param int $n 辺の長さ、デフォルトは 5
* @param String $s 文字が表示されます、デフォルト*
* @return 文字列
*/
関数hollowDiamond($n=5, $s='*'){
$str = '';
// 総行数を計算します
$rows = $n*2-1;
// 各行の * を計算するループ
for($i=0; $i
if($i
$tmp = $i*2+1;
$str .= str_pad('', ($n-$i-1), ' '). str_pad(str_pad('', $tmp-2, ' ', STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH)。 「ん」
}else{ // 下部
$tmp = ($rows-$i)*2-1;
$str .= str_pad('', ($i-$n+1), ' '). str_pad(str_pad('', $tmp-2, ' ', STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH)。 「ん」;
}
}
$str を返します。
}
エコー '
';
エコーホロウダイヤモンド(5);
echo '';
コードは次のとおりです:
*
* *
* *
* *
* *
* *
* *
* *
*
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/962925.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/962925.html
技術記事 phpで辺の長さNの中実と中空のひし形を印刷する方法 この記事では、phpで辺の長さがNの中実と中空のひし形を印刷する方法を主に紹介します。 ...