Programa para imprimir el patrón ‘G’

En este artículo, aprenderemos cómo imprimir el patrón G usando estrellas y espacios en blanco. Dado un número n, escribiremos un programa para imprimir el patrón G sobre n líneas o filas.
Ejemplos: 
 

Input : 7
Output :
  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

Input : 9
Output :
  *****  
 *       
 *       
 *       
 *   *** 
 *     * 
 *     * 
 *     * 
  *****  

En este programa, hemos utilizado la lógica simple de iteración sobre líneas para crear el patrón G. Mire la imagen a continuación que representa el patrón G en forma de array bidimensional, donde mat[i][j] = ‘ij’: 
 

G

Si tratamos de analizar esta imagen con una array (fila, columna) y los círculos representan la posición de las estrellas en el patrón G, aprenderemos los pasos. Aquí estamos realizando las operaciones por columnas. Entonces, para la primera línea de estrellas, establecemos la primera condición if, donde la posición de la fila con 0 y (n-1) no obtendrá las estrellas y todas las demás filas de 1 a (n-1) obtendrán las estrellas. . De manera similar, para la segunda, tercera y cuarta columna queremos estrellas en la posición fila = 0 y fila = (n-1). Los otros pasos se explican por sí mismos y se pueden entender a partir de la posición de las filas y columnas en el diagrama.
A continuación se muestra la implementación de la idea anterior: 
 

C++

// C++ program to print the pattern G
#include <iostream>
using namespace std;
 
void pattern(int line)
{
    int i, j;
    for(i = 0; i < line; i++)
    {
        for(j = 0; j < line; j++)
        {
            if((j == 1 && i != 0 && i != line - 1) ||
              ((i == 0 || i == line - 1) && j > 1 &&
              j < line - 2) || (i == ((line - 1) / 2) &&
              j > 2 && j < line - 1) || (j == line - 2 &&
              i != 0 && i >= ((line - 1) / 2) && i != line - 1))
                printf("*");
            else
                printf( " ");
 
        }
        printf("\n");
    }
}
 
// Driver code
int main()
{
    int line = 7;
    pattern(line);
    return 0;
}
 
// This code is contributed
// by  vt_m.

Java

// Java program to print the pattern G
import java.io.*;
 
class GFG {
 
    static void pattern(int line)
    {
        int i, j;
        for(i = 0; i < line; i++)
        {
            for(j = 0; j < line; j++)
            {
                if((j == 1 && i != 0 && i != line - 1) ||
                ((i == 0 || i == line - 1) && j > 1 &&
                j < line - 2) || (i == ((line - 1) / 2) &&
                j > 2 && j < line - 1) || (j == line - 2 &&
                i != 0 && i >= ((line - 1) / 2) && i != line - 1))
                    System.out.print("*");
                else
                    System.out.print( " ");
     
            }
            System.out.println();
        }
    }
     
    // Driver code
    public static void main (String[] args)
    {
        int line = 7;
        pattern(line);
    }
}
 
// This code is contributed by vt_m.

Python

# Python program to print pattern G
def Pattern(line):
    pat=""
    for i in range(0,line):   
        for j in range(0,line):    
            if ((j == 1 and i != 0 and i != line-1) or ((i == 0 or
                i == line-1) and j > 1 and j < line-2) or (i == ((line-1)/2)
                and j > line-5 and j < line-1) or (j == line-2 and
                i != 0 and i != line-1 and i >=((line-1)/2))): 
                pat=pat+"*"  
            else:     
                pat=pat+" "  
        pat=pat+"\n"  
    return pat
  
# Driver Code
line = 7
print(Pattern(line))

C#

// C# program to print the pattern G
using System;
 
class GFG {
 
    static void pattern(int line)
    {
        int i, j;
        for(i = 0; i < line; i++)
        {
            for(j = 0; j < line; j++)
            {
                if((j == 1 && i != 0 && i != line - 1) ||
                ((i == 0 || i == line - 1) && j > 1 &&
                j < line - 2) || (i == ((line - 1) / 2) &&
                j > 2 && j < line - 1) || (j == line - 2 &&
                i != 0 && i >= ((line - 1) / 2) && i != line - 1))
                    Console.Write("*");
                else
                    Console.Write( " ");
     
            }
            Console.WriteLine();
        }
    }
     
    // Driver code
    public static void Main ()
    {
        int line = 7;
        pattern(line);
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program to print pattern G
 
function Pattern($line){
    for ($i=0; $i<$line; $i++)
    {
      for ($j=0; $j<=$line; $j++)
        {
        if (($j == 1 and $i != 0 and $i != $line-1) or (($i == 0 or
            $i == $line-1) and $j > 1 and $j < $line-2) or ($i == (($line-1)/2)
            and $j > 2 and $j < $line-1) or ($j == $line-2 and
            $i != 0 and $i >=(($line-1)/2) and $i != $line-1))
                echo "*";   
            else
                echo " ";    
        }       
      echo "\n";
    }
}
 
// Driver Code
$line = 7;
Pattern($line)
?>

Javascript

<script>
      // JavaScript program to print the pattern G
 
      function pattern(line) {
        var i, j;
        for (i = 0; i < line; i++) {
          for (j = 0; j < line; j++) {
            if (
              (j == 1 && i != 0 && i != line - 1) ||
              ((i == 0 || i == line - 1) && j > 1 && j < line - 2) ||
              (i == (line - 1) / 2 && j > 2 && j < line - 1) ||
              (j == line - 2 && i != 0 && i >= (line - 1) / 2 && i != line - 1)
            )
              document.write("*");
            else document.write("  ");
          }
          document.write("<br>");
        }
      }
       
      // Driver code
      var line = 7;
      pattern(line);
       
      // This code is contributed by rdtank.
    </script>

Producción: 
 

  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

Complejidad de tiempo: O(n 2 ), donde n representa la entrada dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *