We have to print a pattern where in middle column contains only 1, right side columns contain constant digit which is greater than 1 and left side columns contains constant digit which is greater than 1. Every row should look like a Palindrome.
Examples :
Input : 3 Output : 1 2 1 2 1 Input : 5 Output : 1 2 1 2 3 2 1 2 3 2 1 2 1
Below is the implementation to print the following pattern :
C++
// CPP program to print pattern #include <bits/stdc++.h> using namespace std;
void display()
{ int n = 5;
int space = n / 2, num = 1;
// Outer for loop for
// number of rows
for ( int i = 1; i <= n; i++)
{
// Inner for loop for
// printing space
for ( int j = 1; j <= space; j++)
cout<< " " ;
// Logic for printing
// the pattern for everyline
int count = num / 2 + 1;
for ( int k = 1; k <= num; k++)
{
cout<<count;
// Value of count decrements
// in every cycle
if (k <= num /2 )
count--;
// Value of count will
// increment in every cycle
else
count++;
}
cout<< "\n" ;
// Before reaching half Space
// is decreased by 1 and num
// is increased by 2
if (i <= n / 2)
{
space = space - 1;
num = num + 2;
}
// After reaching to half
// space is increased by 1
// and num is decreased by 2
else
{
space = space + 1;
num = num - 2;
}
}
} // Driver Code int main()
{ display();
return 0;
} // This code is contributed by Nikita tiwari. |
Java
// Java program to print above pattern import java.util.Scanner;
class Pattern
{ void display()
{
int n = 5 ;
int space = n / 2 , num = 1 ;
// Outer for loop for
// number of rows
for ( int i = 1 ; i <= n; i++)
{
// Inner for loop
// for printing space
for ( int j = 1 ; j <= space; j++)
System.out.print( " " );
// Logic for printing
// the pattern for everyline
int count = num / 2 + 1 ;
for ( int k = 1 ; k <= num; k++)
{
System.out.print(count);
// Value of count decrements
// in every cycle
if (k <= num / 2 )
count--;
// Value of count will increment
// in every cycle
else
count++;
}
System.out.println();
// Before reaching half Space is decreased
// by 1 and num is increased by 2
if (i <= n / 2 )
{
space = space - 1 ;
num = num + 2 ;
}
// After reaching to half space is increased
// by 1 and num is decreased by 2
else
{
space = space + 1 ;
num = num - 2 ;
}
}
}
// Driver Code
public static void main(String[] args)
{
Pattern p = new Pattern();
p.display();
}
} |
Python3
# Python 3 program to # print above pattern def display() :
n = 5
space = n / / 2
num = 1
# Outer for loop for
# number of rows
for i in range ( 1 , n + 1 ) :
# Inner for loop for
# printing space
for j in range ( 1 , space + 1 ) :
print ( " " , end = "")
# Logic for printing the
# pattern for everyline
count = num / / 2 + 1
for k in range ( 1 , num + 1 ) :
print (count, end = "")
# Value of count decrements
# in every cycle
if (k < = num / / 2 ) :
count = count - 1
# Value of count will
# increment in every cycle
else :
count = count + 1
print ()
# Before reaching half Space
# is decreased by 1 and num
# is increased by 2
if (i < = n / / 2 ) :
space = space - 1
num = num + 2
# After reaching to half
# space is increased by 1
# and num is decreased by 2
else :
space = space + 1
num = num - 2
# Driver Code display() #This code is contributed by Nikita Tiwari. |
C#
// C# program to print above pattern using System;
class Pattern
{ void display()
{
int n = 5;
int space = n / 2, num = 1;
// Outer for loop for
// number of rows
for ( int i = 1; i <= n; i++)
{
// Inner for loop
// for printing space
for ( int j = 1; j <= space; j++)
Console.Write( " " );
// Logic for printing
// the pattern for everyline
int count = num / 2 + 1;
for ( int k = 1; k <= num; k++)
{
Console.Write(count);
// Value of count decrements
// in every cycle
if (k <= num /2 )
count--;
// Value of count will increment
// in every cycle
else
count++;
}
Console.WriteLine();
// Before reaching half Space is decreased
// by 1 and num is increased by 2
if (i <= n / 2)
{
space = space - 1;
num = num + 2;
}
// After reaching to half space is increased
// by 1 and num is decreased by 2
else
{
space = space + 1;
num = num - 2;
}
}
}
// Driver Code
public static void Main()
{
Pattern p = new Pattern();
p.display();
}
} // This code is contributed by vt_m. |
PHP
<?php // php program to print // above pattern function display( $n )
{
$space = $n / 2;
$num = 1;
// Outer for loop for
// number of rows
for ( $i = 1; $i <= $n ; $i ++)
{
// Inner for loop
// for printing space
for ( $j = 1; $j <= $space ; $j ++)
echo " " ;
// Logic for printing
// the pattern for everyline
$count = $num / 2 + 1;
for ( $k = 1; $k <= $num ; $k ++)
{
echo floor ( $count );
// Value of count decrements
// in every cycle
if ( $k <= $num /2 )
$count --;
// Value of count will increment
// in every cycle
else
$count ++;
}
echo "\n" ;
// Before reaching half Space
// is decreased by 1 and
// num is increased by 2
if ( $i <= $n / 2)
{
$space = $space - 1;
$num = $num + 2;
}
// After reaching to half
// space is increased by 1
// and num is decreased by 2
else
{
$space = $space + 1;
$num = $num - 2;
}
}
}
// Driver Code $n = 5;
display( $n );
// This code is contributed by mits ?> |
Javascript
<script> // JavaScript program to print pattern
function display() {
var n = 5;
var space = parseInt(n / 2),
num = 1;
// Outer for loop for
// number of rows
for ( var i = 1; i <= n; i++) {
// Inner for loop for
// printing space
for ( var j = 1; j <= space; j++)
document.write( " " );
// Logic for printing
// the pattern for everyline
var count = parseInt(num / 2 + 1);
for ( var k = 1; k <= num; k++) {
document.write(count);
// Value of count decrements
// in every cycle
if (k <= num / 2) count--;
// Value of count will
// increment in every cycle
else count++;
}
document.write( "<br>" );
// Before reaching half Space
// is decreased by 1 and num
// is increased by 2
if (i <= n / 2) {
space = space - 1;
num = num + 2;
}
// After reaching to half
// space is increased by 1
// and num is decreased by 2
else {
space = space + 1;
num = num - 2;
}
}
}
// Driver Code
display();
</script> |
Output :
1 212 32123 212 1
Time Complexity: O(n2), where n represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.