PHP druckt einen massiven und hohlen Diamanten mit der Seitenlänge N

WBOY
Freigeben: 2016-08-08 09:29:20
Original
1192 Leute haben es durchsucht

php druckt eine massive und hohle Raute mit der Seitenlänge N

Berechnungsmethode für feste Rauten:

$n: Seitenlänge
$i: aktuelle Zeile, beginnend bei 0
$rows: Gesamtzahl der Zeilen

Oberer Teil
Anzahl der Leerzeichen vorne=$n-$i-1
Anzahl der Zeichen=$i*2+1
Unterer Teil
Anzahl der Leerzeichen davor =$i-$n+ 1
Anzahl der Zeichen=($rows-$i)*2-1

Die Verwendung von str_pad kann reduzieren for/while und andere Schleifen

/**
 * 打印实心菱型
 * @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(&#39;&#39;, ($n-$i-1), &#39; &#39;). str_pad(&#39;&#39;, $i*2+1, $s)."\r\n";
        }else{     // 下部
            $str .= str_pad(&#39;&#39;, ($i-$n+1), &#39; &#39;). str_pad(&#39;&#39;, ($rows-$i)*2-1, $s). "\r\n";
        }
    }

    return $str;

}

echo &#39;<xmp>';
echo solidDiamond(5);
echo '</xmp>';
Nach dem Login kopieren

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
Nach dem Login kopieren

Berechnungsmethode für Hohlrauten:
$n: Seitenlänge
$i: aktuelle Zeile, beginnend mit 0
$rows: Gesamtzahl der Zeilen
oberer Teil
Anzahl der Leerzeichen vorne=$n-$i-1
Anzahl der Leerzeichen= $i*2+1-2
Anzahl der Zeichen =$i*2+1 – Die Anzahl der Leerzeichen im unteren Teil von

und davor =$i-$n+ 1
Die Anzahl der Leerzeichen im vorderen Teil =($rows-$i)*2-1- 2
Anzahl der Zeichen=($rows-$i)*2-1 - Anzahl der Leerzeichen

/**
 * 打印空心菱型
 * @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(&#39;&#39;, ($n-$i-1), &#39; &#39;). str_pad(str_pad(&#39;&#39;, $tmp-2, &#39; &#39;, STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH)."\r\n";
        }else{     // 下部
            $tmp = ($rows-$i)*2-1;
            $str .= str_pad(&#39;&#39;, ($i-$n+1), &#39; &#39;). str_pad(str_pad(&#39;&#39;, $tmp-2, &#39; &#39;, STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH). "\r\n";
        }
    }

    return $str;

}

echo &#39;<xmp>';
echo hollowDiamond(5);
echo '</xmp>';
Nach dem Login kopieren

    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *
Nach dem Login kopieren

Das Obige stellt PHP vor, um einen massiven und hohlen Diamanten mit der Seitenlänge N zu drucken, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Verwandte Etiketten:
str
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage