পিএইচপি ব্যবহার করে এই প্যাটার্নটি কীভাবে প্রিন্ট করবেন?


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 এবং 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আরও বহনযোগ্য # জাস্টসায়াইন
ফিল

@ ফিল মজার ... যখন আমি অতীতে পিএইচপি_ইএল ব্যবহার করেছি তখন অতিরিক্ত জটিলতার জন্য আমার সমালোচনা হয়েছিল ... তবে ব্যক্তিগতভাবে আমি আপনার সাথে একমত হয়েছি এবং আপডেট করব will
নিক

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.

}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.