php 는 가장자리 길이 가 N 인 실심 과 공심 마름 형 을 인쇄 하 는 방법

이 글 의 사례 는 phop 가 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 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
"; 
        }else{     //  
            $str .= str_pad('', ($i-$n+1), ' '). str_pad('', ($rows-$i)*2-1, $s). "\r
"; 
        } 
    } 
    return $str; 

echo '<xmp>'; 
echo solidDiamond(5); 
echo '</xmp>';
    *  
   *** 
  ***** 
 ******* 
********* 
 ******* 
  ***** 
   *** 
    *
중 공 마름 형 계산 방법:
$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 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
"; 
        }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
";
        } 
    } 
    return $str; 

echo '<xmp>'; 
echo hollowDiamond(5); 
echo '</xmp>';
    *  
   * * 
  *   * 
 *     * 
*       * 
 *     * 
  *   * 
   * * 
    *
본 논문 에서 말 한 것 이 여러분 의 phop 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기