Print a ‘Y’ shaped pattern from asterisks in N number of lines.
Examples:
Input: N = 12
Output:* *
* *
* *
* *
* *
* *
* *
*
*
*
*
*
Input: 8
Output:* *
* *
* *
* *
* *
*
*
*
Try It Yourself
Approach:
Follow the steps to solve this problem:
- Initialize two variable s = N / 2 and t = N / 2.
- Traverse a loop on i from 0 till N-1
- Check if i > s
- Traverse a loop on j from 0 till s-1 and print " " i.e., space
- Else,
- Iterate on j from 0 till i-1 and print " " i.e., space
- Then print "*" i.e., asterisk
- Iterate on k from 0 till 2*t-1 and print " " i.e., space
- Decrement t by 1.
- Print " *" at the end of each iteration.
Below is the implementation of the above approach:
// C++ code for the above approach
#include <iostream>
using namespace std;
int main()
{
// Given integer N
int N = 12;
// Initialize s and t
int s = N / 2;
int t = s;
// Traverse from 0 till N
for (int i = 0; i < N; i++) {
if (i > s) {
for (int j = 0; j < s; j++)
cout << " ";
}
else {
for (int j = 0; j < i; j++)
cout << " ";
cout << "*";
for (int k = 0; k < 2 * t; k++)
cout << " ";
// Decrement t
t--;
}
cout << " *" << endl;
}
return 0;
}
// Java code for the above approach
import java.io.*;
class GFG {
public static void main(String[] args)
{
// Given integer N
int N = 12;
// Initialize s and t
int s = N / 2;
int t = s;
// Traverse from 0 till N
for (int i = 0; i < N; i++) {
if (i > s) {
for (int j = 0; j < s; j++)
System.out.print(" ");
}
else {
for (int j = 0; j < i; j++)
System.out.print(" ");
System.out.print("*");
for (int k = 0; k < 2 * t; k++)
System.out.print(" ");
// Decrement t
t--;
}
System.out.println(" *");
}
}
}
// This code is contributed by Rohit Pradhan
# Given integer N
N = 12
# Initialize s and t
s = N / 2
t = s
# Traverse from 0 till N
for i in range(0, N):
if (i > s):
for j in range(0, int(s)):
print(" ", end = "")
else:
for j in range(0, i):
print(" ", end = "")
print("*", end = "")
for k in range(0, (2*int(t))):
print(" ", end = "")
# Decrement t
t = t - 1
print(" *")
# This code is contributed by akashish__
// C# code to implement the approach
using System;
using System.Collections.Generic;
class GFG
{
public static void Main()
{
// Given integer N
int N = 12;
// Initialize s and t
int s = N / 2;
int t = s;
// Traverse from 0 till N
for (int i = 0; i < N; i++) {
if (i > s) {
for (int j = 0; j < s; j++)
Console.Write(" ");
}
else {
for (int j = 0; j < i; j++)
Console.Write(" ");
Console.Write("*");
for (int k = 0; k < 2 * t; k++)
Console.Write(" ");
// Decrement t
t--;
}
Console.WriteLine(" *");
}
}
}
// This code is contributed by code_hunt.
<script>
// JavaScript implementation of the approach
// Given integer N
let N = 12;
// Initialize s and t
let s = Math.floor(N / 2);
let t = s;
// Traverse from 0 till N
for (let i = 0; i < N; i++) {
if (i > s) {
for (let j = 0; j < s; j++)
document.write(" ");
}
else {
for (let j = 0; j < i; j++)
document.write(" ");
document.write("*");
for (let k = 0; k < 2 * t; k++)
document.write(" ");
// Decrement t
t--;
}
document.write(" *" + "<br/>");
}
// This code is contributed by sanjoy_62.
</script>
Output
* *
* *
* *
* *
* *
* *
* *
*
*
*
*
*Time Complexity: O(N2), for using nested loops.
Auxiliary Space: O(1), as constant extra space is required.