Program to print the Zigzag pattern - GeeksforGeeks

11 Aug, 2021
Given a number N denoting the number of rows. The task is to print the zigzag pattern with N rows as shown in the below examples.Examples:  
Input : N = 3 
Output : 1 
         3*2 
         4*5*6

Input : N = 5
Output : 1 
         3*2 
         4*5*6 
         10*9*8*7 
         11*12*13*14*15
 
Approach:  
Use a for loop for printing the number of rows.Use two variables var and var1 for odd and even rows respectively.When the row number is odd, calculate starting point of the row and then print and increment the variable simultaneously.When the row number is even, calculate corresponding starting point and print and decrement the variable simultaneously.
Use a for loop for printing the number of rows.
Use two variables var and var1 for odd and even rows respectively.
When the row number is odd, calculate starting point of the row and then print and increment the variable simultaneously.
When the row number is even, calculate corresponding starting point and print and decrement the variable simultaneously.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
PHP
Javascript
// CPP program to print the given// zigzag pattern #include<iostream>using namespace std; // Function to print the zigzag patternvoid printPattern(int n){      int var1, var = 1;         for(int i = 1; i <= n; i++)    {          // for odd rows        if(i%2!=0)        {              // calculate starting value            var = var + i - 1;            for(int j=1; j<=i; j++)            {                if(j==1)                {                    cout<<var;                }                else                   cout<<"*"<<var;                                   var++;               }        }        else // for even rows        {                    var1 = var + i -1; // calculate starting value            for(int j=1; j<=i; j++)            {                if(j==1)                {                    // print without star                    cout<<var1;                }                else                {                    // print with star                    cout<<"*"<<var1;                }                var1--;            }        }        cout<<endl;    }     } // Driver codeint main(){    int n = 5;         printPattern(n);         return 0;} 
// Java program to print the given// zigzag patternclass GFG{// Function to print the// zigzag patternstatic void printPattern(int n){    int var1, var = 1;         for(int i = 1; i <= n; i++)    {        // for odd rows        if(i % 2 != 0)        {            // calculate starting value            var = var + i - 1;            for(int j = 1; j <= i; j++)            {                if(j == 1)                {                    System.out.print(var);                }                else                System.out.print("*" + var);                                 var++;            }        }        else // for even rows        {                var1 = var + i -1; // calculate starting value            for(int j = 1; j <= i; j++)            {                if(j == 1)                {                    // print without star                    System.out.print(var1);                }                else                {                    // print with star                    System.out.print("*" + var1);                }                var1--;            }        }        System.out.print("\n");    }     } // Driver codepublic static void main(String [] arg){    int n = 5;         printPattern(n);}} // This code is contributed by Smitha
# Python3 program to print the given# zigzag pattern # Function to print the zigzag patterndef printPattern(n):         var = 0    var = 1         for i in range(1, n + 1):         # for odd rows        if(i % 2 != 0):                         # calculate starting value            var = var + i - 1            for j in range(1, i + 1):                             if(j == 1):                                     print(var, end = "")                else:                    print("*", end = "")                    print(var, end = "")                                     var += 1                              else: # for even rows                             var1 = var + i -1 # calculate starting value            for j in range(1, i + 1):                             if(j == 1):                                     # prwithout star                    print(var1, end = "")                                 else:                                     # prwith star                    print("*", end = "")                    print(var1, end = "")                                 var1 -= 1                     print()     # Driver coden = 5 printPattern(n) # This code is contributed by Mohit kumar
// C# program to print the given// zigzag patternusing System;class GFG{// Function to print the// zigzag patternstatic void printPattern(int n){    int var1, var = 1;         for(int i = 1; i <= n; i++)    {        // for odd rows        if(i % 2 != 0)        {            // calculate starting value            var = var + i - 1;            for(int j = 1; j <= i; j++)            {                if(j == 1)                {                    Console.Write(var);                }                else                    Console.Write("*" + var);                                 var++;            }        }        else // for even rows        {                var1 = var + i -1; // calculate starting value            for(int j = 1; j <= i; j++)            {                if(j == 1)                {                    // print without star                    Console.Write(var1);                }                else                {                    // print with star                    Console.Write("*" + var1);                }                var1--;            }        }        Console.Write("\n");    }     } // Driver codepublic static void Main(){    int n = 5;         printPattern(n);}} // This code is contributed// by Akanksha Rai(Abby_akku)
<?php// PHP program to print the given// zigzag pattern // Function to print the zigzag patternfunction printPattern($n){    $var1; $var = 1;         for($i = 1; $i <= $n; $i++)    {        // for odd rows        if($i % 2 != 0)        {            // calculate starting value            $var = $var + $i - 1;            for($j = 1; $j <= $i; $j++)            {                if($j == 1)                {                    echo $var;                }                else                    echo "*" . $var;                                     $var++;            }        }        else // for even rows        {                // calculate starting value            $var1 = $var + $i - 1;            for($j = 1; $j <= $i; $j++)            {                if($j == 1)                {                    // print without star                    echo $var1;                }                else                {                    // print with star                    echo "*" . $var1;                }                $var1--;            }        }        echo "\n";    }     } // Driver code$n = 5; printPattern($n); // This code is contributed by Rajput-Ji?>
<script>      // JavaScript program to print the given      // zigzag pattern       // Function to print the zigzag pattern      function printPattern(n)      {        var var1,          var2 = 1;         for (var i = 1; i <= n; i++)        {                   // for odd rows          if (i % 2 != 0)          {                       // calculate starting value            var2 = var2 + i - 1;            for (var j = 1; j <= i; j++)            {              if (j == 1)              {                document.write(var2);              }              else document.write("*" + var2);               var2++;            }          }                     // for even rows          else          {            var1 = var2 + i - 1; // calculate starting value            for (var j = 1; j <= i; j++) {              if (j == 1)              {                               // print without star                document.write(var1);              }              else              {                               // print with star                document.write("*" + var1);              }              var1--;            }          }          document.write("<br>");        }      }       // Driver code      var n = 5;      printPattern(n);             // This code is contributed by rdtank.    </script>
1
3*2
4*5*6
10*9*8*7
11*12*13*14*15
 
Time Complexity: O(N^2)Auxiliary Space: O(1) 
Smitha Dinesh Semwal
Akanksha_Rai
Rajput-Ji
mohit kumar 29
nidhi_biet
rdtank
pankajsharmagfg
pattern-printing
Technical Scripter 2018
Algorithms
Technical Scripter
pattern-printing
Algorithms
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
SDE SHEET - A Complete Guide for SDE Preparation
DSA Sheet by Love Babbar
Introduction to Algorithms
How to Start Learning DSA?
Recursive Practice Problems with Solutions
Difference between NP hard and NP complete problem
Converting Roman Numerals to Decimal lying between 1 to 3999
Quick Sort vs Merge Sort
Difference between Algorithm, Pseudocode and Program
Generate all permutation of a set in Python