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 : 2
Output : 1
2 3
Input : 5
Output : 1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
Approach:
1. Use a for loop for printing the number of rows.
2. Use two for loops for printing space and pattern.
3. Calculate starting value for each row with variable t.
Below is the implementation of above approach:
C++
#include <iostream>
using namespace std;
class gfg
{
public :
void printPattern( int n)
{
int t;
for ( int i = 1; i <= n; i++) {
for ( int j = i; j < n; j++)
printf ( "\t" );
t = i;
for ( int k = 1; k <= i; k++) {
printf ( "%d\t\t" , t);
t = t + n - k;
}
printf ( "\n" );
}
}
};
int main()
{
gfg g;
int n = 6;
g.printPattern(n);
return 0;
}
|
C
#include <stdio.h>
void printPattern( int n)
{
int t;
for ( int i = 1; i <= n; i++) {
for ( int j = i; j < n; j++)
printf ( "\t" );
t = i;
for ( int k = 1; k <= i; k++) {
printf ( "%d\t\t" , t);
t = t + n - k;
}
printf ( "\n" );
}
}
int main()
{
int n = 6;
printPattern(n);
return 0;
}
|
Java
class GFG
{
static void printPattern( int n)
{
int t;
for ( int i = 1 ; i <= n; i++)
{
for ( int j = i; j < n; j++)
System.out.print( "\t" );
t = i;
for ( int k = 1 ; k <= i; k++)
{
System.out.print(t + "\t\t" );
t = t + n - k;
}
System.out.println();
}
}
public static void main(String []args)
{
int n = 6 ;
printPattern(n);
}
}
|
Python3
def printPattern(n):
for i in range ( 1 , n + 1 ):
for j in range (i, n):
print ( "\t" , end = "")
t = i
for k in range ( 1 , i + 1 ):
print (t, "\t" , "\t" , end = "")
t = t + n - k
print ()
n = 6
printPattern(n)
|
C#
using System;
class GFG
{
static void printPattern( int n)
{
int t;
for ( int i = 1; i <= n; i++)
{
for ( int j = i; j < n; j++)
Console.Write( "\t" );
t = i;
for ( int k = 1; k <= i; k++)
{
Console.Write(t + "\t\t" );
t = t + n - k;
}
Console.WriteLine();
}
}
public static void Main()
{
int n = 6;
printPattern(n);
}
}
|
PHP
<?php
function printPattern( $n )
{
for ( $i = 1; $i <= $n ; $i ++)
{
for ( $j = $i ; $j < $n ; $j ++)
echo "\t" ;
$t = $i ;
for ( $k = 1; $k <= $i ; $k ++)
{
echo "$t \t\t" ;
$t = $t + $n - $k ;
}
echo "\n" ;
}
}
$n = 6;
printPattern( $n );
?>
|
Javascript
<script>
function printPattern(n) {
var t;
for ( var i = 1; i <= n; i++) {
for ( var j = i; j < n; j++)
document.write( " " );
t = i;
for ( var k = 1; k <= i; k++) {
document.write(t + " " );
t = t + n - k;
}
document.write( "<br>" );
}
}
var n = 6;
printPattern(n);
</script>
|
Output: 1
2 7
3 8 12
4 9 13 16
5 10 14 17 19
6 11 15 18 20 21
Time complexity: O(n2) for given input n
Auxiliary Space: O(1)