第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 n 輸入實(shí)現(xiàn)此數(shù)字模式

如何使用 n 輸入實(shí)現(xiàn)此數(shù)字模式

PHP
尚方寶劍之說 2021-11-26 16:41:54
我想給 n 作為輸入并獲得這樣的模式。模式如果 n = 4    1   222  33333 4444444  33333   222    1實(shí)現(xiàn)這一目標(biāo)的完美方法是什么?我試過了。但是我的代碼不好!有什么辦法可以用更少和清晰的代碼來做到這一點(diǎn)???echo '<pre>';$n=4;for ($i=1; $i <= $n*2-1; $i++) {    if($n<$i){ //bottom part        $scount=$i-$n;        $iterator = 0;        while($iterator != $scount){            $iterator++;            echo ' ';        }        $num = ($n*2)-$i;        $loop = $num*2-1;        $iterator = 0;        while($iterator != $loop){            $iterator++;            echo $num;        }    }elseif ($n==$i){ // middle part        $loop = $i*2-1;        $iterator = 0;        while ($iterator != $loop) {            $iterator++;            echo $i;        }    }else{ //top part        $scount = $n-$i;        $iterator=0;        while ($iterator != $scount) {            $iterator++;            echo ' ';        }        $loop = $i*2-1;        $iterator = 0;        while($iterator != $loop){            $iterator++;            echo $i;        }    }    echo "<br>";}?>````
查看完整描述

3 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

在與其他答案類似的行上,但這會(huì)構(gòu)建一個(gè)帶有輸出的字符串。這允許它構(gòu)建循環(huán)中的每個(gè)重復(fù)行并將其添加到結(jié)果字符串的開頭和結(jié)尾。這意味著循環(huán)只是運(yùn)行$n-1時(shí)間(加上設(shè)置中間線的第一行)......


$n=4;

$output = str_repeat("$n", (2*$n)-1).PHP_EOL;

for ( $i = $n-1; $i>0; $i-- ) {

    $line = str_repeat(' ', $n-$i).str_repeat("$i", (2*$i)-1);

    $output = $line.PHP_EOL.$output.$line.PHP_EOL;

}

echo $output;


查看完整回答
反對(duì) 回復(fù) 2021-11-26
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以通過注意最長(zhǎng)的線是具有最大值 n 的線來解決此問題,并且其中包含2*n-1n。所有其他行都需要間距以使它們與那一行對(duì)齊,這將是該行上的 n 數(shù)與最長(zhǎng)行上的 n 數(shù)之差的一半。str_repeat是生成那些重復(fù)字符串的好方法:


echo "<pre>\n";

$n=4;

$max_length = $n * 2 - 1;

for ($i = 1; $i <= $n * 2 - 1; $i++) {

    $this_n = ($i <= $n) ? $i : $n * 2 - $i;

    $num_ns = $this_n * 2 - 1;

    echo str_repeat(' ', ($max_length - $num_ns) / 2);

    echo str_repeat("$this_n", $num_ns);

    echo "\n";

}

echo '</pre>';

輸出:


<pre>

   1

  222

 33333

4444444

 33333

  222

   1

</pre>

3v4l.org 上的演示


查看完整回答
反對(duì) 回復(fù) 2021-11-26
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

兩個(gè) for 循環(huán),重復(fù)所需的空格數(shù)和字符數(shù)。


$n = 4;


for($i=1;$i<=$n;$i++){


    echo str_repeat(" ", $n-$i+1) . str_repeat($i, $i*2-1) . "\n";

}

for($i=$n-1;$i>0;$i--){


    echo str_repeat(" ", $n-$i+1) . str_repeat($i, $i*2-1) . "\n";

}

https://3v4l.org/1hK3s


查看完整回答
反對(duì) 回復(fù) 2021-11-26
  • 3 回答
  • 0 關(guān)注
  • 216 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)