この記事では、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<$n){ // 上部
$str .= str_pad('', ($n-$i-1), ' ').str_pad('', $i*2+1, $s)."rn";
。
$str .= str_pad('', ($i-$n+1), ' '). str_pad('', ($rows-$i)*2-1, $s);
}
$str を返します
}
エコー '
*******
*********
*******
*****
***
*
中空ダイヤモンドの計算方法:
$n: 辺の長さ
$i: 0 から始まる現在の行
$rows: 行の合計数
上部
空きスペースの数 =$i*2+1-2
文字数 = $i*2+1 - 空白の数
下部
空のスペースの数 = ($rows-$i)*2-1-2
文字数 = ($rows-$i)*2-1 - 空白の数
コードは次のとおりです:/**
* 中空ダイヤモンド形状を印刷します
* @param int $n 辺の長さ、デフォルトは 5
* @param String $s 文字が表示されます、デフォルト*
* @return 文字列
*/
関数hollowDiamond($n=5, $s='*'){
$str = '';
// 総行数を計算します
$行 = $n*2-1;
// 各行の * を計算するループ
for($i=0; $i
If($i<$n){ // 上部
$tmp = $i*2+1;
$str .= str_pad('', ($n-$i-1), ' '). str_pad(str_pad('', $tmp-2, ' ', STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH)。 「ん」
$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 を返します
}
エコー '