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.
Below is the implementation of the above approach:
C++
// CPP program to print the given // zigzag pattern #include<iostream> using namespace std;
// Function to print the zigzag pattern 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)
{
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 code int main()
{ int n = 5;
printPattern(n);
return 0;
} |
Java
// Java program to print the given // zigzag pattern class GFG
{ // Function to print the // zigzag pattern static 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 code public static void main(String [] arg)
{ int n = 5 ;
printPattern(n);
} } // This code is contributed by Smitha |
Python3
# Python3 program to print the given # zigzag pattern # Function to print the zigzag pattern def 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 code n = 5
printPattern(n) # This code is contributed by Mohit kumar |
C#
// C# program to print the given // zigzag pattern using System;
class GFG
{ // Function to print the // zigzag pattern static 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 code public static void Main()
{ int n = 5;
printPattern(n);
} } // This code is contributed // by Akanksha Rai(Abby_akku) |
PHP
<?php // PHP program to print the given // zigzag pattern // Function to print the zigzag pattern function 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 ?> |
Javascript
<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>
|
Output:
1 3*2 4*5*6 10*9*8*7 11*12*13*14*15
Time Complexity: O(N^2)
Auxiliary Space: O(1)