《PHP應(yīng)用:php打印一個(gè)邊長(zhǎng)為N的實(shí)心和空心菱型的方法》要點(diǎn):
本文介紹了PHP應(yīng)用:php打印一個(gè)邊長(zhǎng)為N的實(shí)心和空心菱型的方法,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP學(xué)習(xí)本文實(shí)例講述了php打印一個(gè)邊長(zhǎng)為N的實(shí)心和空心菱型的辦法.分享給大家供大家參考.具體分析如下:
PHP學(xué)習(xí)實(shí)心菱型計(jì)算辦法:
$n:邊長(zhǎng)
$i:當(dāng)前行,0開(kāi)始
$rows:總行數(shù)
PHP學(xué)習(xí)上部
前面空格數(shù)=$n-$i-1
字符數(shù)=$i*2+1
PHP學(xué)習(xí)下部
前面空格數(shù)=$i-$n+1
字符數(shù)=($rows-$i)*2-1
PHP學(xué)習(xí)使用 str_pad 可以減少for/while等循環(huán)
代碼如下:
/**
?* 打印實(shí)心菱型
?* @param? int??? $n 邊長(zhǎng),默認(rèn)5
?* @param? String $s 顯示的字符, 默認(rèn)*
?* @return String
?*/?
function solidDiamond($n=5, $s='*'){?
??? $str = '';?
??? // 計(jì)算總行數(shù)?
??? $rows = $n*2-1;?
??? // 循環(huán)計(jì)算每行的*?
??? for($i=0; $i<$rows; $i++){?
??????? if($i<$n){ // 上部?
??????????? $str .= str_pad('', ($n-$i-1), ' '). str_pad('', $i*2+1, $s)."\r\n";?
??????? }else{???? // 下部?
??????????? $str .= str_pad('', ($i-$n+1), ' '). str_pad('', ($rows-$i)*2-1, $s). "\r\n";?
??????? }?
??? }?
??? return $str;?
}?
echo '<xmp>';?
echo solidDiamond(5);?
echo '</xmp>';
代碼如下:
??? *?
?? ***?
? *****?
?*******?
*********?
?*******?
? *****?
?? ***?
??? *
PHP學(xué)習(xí)空心菱型計(jì)算辦法:
$n:邊長(zhǎng)
$i:當(dāng)前行,0開(kāi)始
$rows:總行數(shù)
PHP學(xué)習(xí)上部
前面空格數(shù)=$n-$i-1
空心的空格數(shù)=$i*2+1-2
字符數(shù)=$i*2+1 - 空心的空格數(shù)
PHP學(xué)習(xí)下部
前面空格數(shù)=$i-$n+1
空心的空格數(shù)=($rows-$i)*2-1-2
字符數(shù)=($rows-$i)*2-1 - 空心的空格數(shù)
代碼如下:
/**
?* 打印空心菱型
?* @param? int??? $n 邊長(zhǎng),默認(rèn)5
?* @param? String $s 顯示的字符, 默認(rèn)*
?* @return String
?*/?
function hollowDiamond($n=5, $s='*'){?
??? $str = '';?
??? // 計(jì)算總行數(shù)?
??? $rows = $n*2-1;?
??? // 循環(huán)計(jì)算每行的*?
??? for($i=0; $i<$rows; $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)."\r\n";?
??????? }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). "\r\n";
??????? }?
??? }?
??? return $str;?
}?
echo '<xmp>';?
echo hollowDiamond(5);?
echo '</xmp>';
代碼如下:
??? *?
?? * *?
? *?? *?
?*???? *?
*?????? *?
?*???? *?
? *?? *?
?? * *?
??? *
PHP學(xué)習(xí)希望本文所述對(duì)大家的php程序設(shè)計(jì)有所贊助.
歡迎參與《PHP應(yīng)用:php打印一個(gè)邊長(zhǎng)為N的實(shí)心和空心菱型的方法》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12170.html