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