PHP का उपयोग करके इस पैटर्न को कैसे प्रिंट करें?


9

इस पैटर्न को कैसे प्रिंट करें?

पैटर्न

$number = 5;
for ($i=1; $i <= $number ; $i++) { 
    for ($j=$i; $j >= 1;$j--){
        echo "0";
    }
    echo "\n";
}

प्रिंटों

0
00
000
0000
00000

मैं इस तरह की कोशिश करता हूं, लेकिन मैं स्टार और ज़ीरो चार को प्रिंट करने में उलझन में हूं

for ($i=1; $i <= $number ; $i++) { 
    $sum = 0;
    for ($j=$i; $j >= 1;$j--){
        $sum +=$j;
    }
    echo $i ." => " .$sum ."\n";
}

प्रिंटों

1 => 1
2 => 3
3 => 6
4 => 10
5 => 15

जवाबों:


17

आप str_repeatआवश्यक लंबाई के तारों को उत्पन्न करने के लिए उपयोग कर सकते हैं । ध्यान दें कि त्रिकोणीय संख्याओं के लिए (1, 3, 6, 10, 15, ...)आप i'वें नंबर' को उत्पन्न कर सकते हैं i(i+1)/2:

$number = 5;
for ($i = 1; $i <= $number; $i++) {
    echo str_repeat('*', $i * ($i + 1) /2) . str_repeat('0', $i) . PHP_EOL;
}

आउटपुट:

*0
***00
******000
**********0000
***************00000

3v4l.org पर डेमो करें

आउटपुट के त्रिकोणीय भाग की अधिक शाब्दिक पीढ़ी (अर्थात 1 से संख्या का योग i) के लिए, आप इस कोड का उपयोग कर सकते हैं जो प्रत्येक पुनरावृत्ति पर आउटपुट में $i *1 और जोड़ता है 0:

$line = '';
$number = 5;
for ($i = 1; $i <= $number; $i++) {
    $line = str_repeat('*', $i) . $line . '0';
    echo $line . PHP_EOL;
}

आउटपुट:

*0
***00
******000
**********0000
***************00000

3v4l.org पर डेमो करें


1
PHP_EOLअधिक पोर्टेबल # अन्याय है
फिल

@ अजीब बात है ... जब मैंने अतीत में PHP_EOL का उपयोग किया है तो मुझे अधिक जटिल होने के लिए आलोचना की गई है ... लेकिन व्यक्तिगत रूप से मैं आपसे सहमत हूं और अपडेट करूंगा।
निक

3

यहाँ एक और तरीका है, जो प्रतिस्थापन तर्क के अधिक शाब्दिक पढ़ने का उपयोग करता है। यहाँ, मैं पिछली लाइन लेने, और की लाइन संख्या राशि जोड़कर हर अगली पंक्ति के रूप में *करने के लिए *एक नया अनुगामी शून्य पर सिर्फ टैग अनुभाग, और उसके बाद।

$line = "*0";
$max = 5;
$counter = 1;

do {
    echo $line . "\n";
    $line = preg_replace("/(\*+)/", "\\1" . str_repeat("*", ++$counter), $line) . "0";
} while ($counter <= $max);

यह प्रिंट:

*0
***00
******000
**********0000
***************00000

0

लूप के लिए शून्य की संख्या $ i के बराबर है। इसलिए हमें केवल तारों की संख्या की गणना करने की आवश्यकता है और फिर बस एक str_repeat करें

$count = 5;

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

  $stars = 0;
  for($j=1; $j <= $i; $j++) {
    $stars = $stars + $j;
  }

  echo str_repeat('*', $stars).str_repeat('0', $i)."\n";
}

आउटपुट:

*0
***00
******000
**********0000
***************00000

0
$line = '';

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

   $line = str_repeat('*', $i) . $line . '0'; // **str_repeat()** --> getting string length

   echo $line . PHP_EOL; // **PHP_EOL** ---> represents the endline character.

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.