Programa para imprimir patrón Inverse Diamond

Dado un número entero n, la tarea es imprimir el patrón de diamante inverso en 2n-1 filas.
Ejemplo: 
 

Input: n = 3
Output:

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

Input: n = 7
Output:

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

Acercarse: 
 

  1. El diamante inverso completo es de 2n-1 filas para una entrada de n.
  2. El programa se divide para imprimir este patrón en dos partes: 
    • La primera parte es la mitad superior del diamante de n filas.
    • Esta parte incluye 3 partes: el triángulo izquierdo de *, el triángulo medio del espacio y el triángulo derecho de *.
    • La segunda parte es la mitad inferior del diamante de n-1 filas.
    • Esta parte también incluye 3 partes: el triángulo izquierdo de *, el triángulo medio del espacio y el triángulo derecho de *.
  3. Al imprimir cada parte, se obtiene el patrón de diamante inverso requerido.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ Code to print
// the inverse diamond shape
   
#include<bits/stdc++.h>
 using namespace std;
   
    // Function to Print Inverse Diamond pattern
    // with 2n-1 rows
void printDiamond(int n)
    {
        cout<<endl;
   
        int i, j = 0;
   
        // for top half
        for (i = 0; i < n; i++) {
   
            // for left *
            for (j = i; j < n; j++)
                cout<<"*";
   
            // for middle " "
            for (j = 0; j < 2 * i + 1; j++)
                cout<<" ";
   
            // for right *
            for (j = i; j < n; j++)
                cout<<"*";
   
            cout<<endl;
        }
   
        // for below half
        for (i = 0; i < n - 1; i++) {
   
            // for left *
            for (j = 0; j < i + 2; j++)
                cout<<"*";
   
            // for middle " "
            for (j = 0; j < 2 * (n - 1 - i) - 1; j++)
                cout<<" ";
   
            // for right *
            for (j = 0; j < i + 2; j++)
                cout<<"*";
   
            cout<<endl;
        }
   
        cout<<endl;
    }
   
    // Driver Code
    int main()
    {
   
        // Define n
        int n = 3;
        cout<<"Inverse Diamond Pattern for n = "<<n;
        printDiamond(n);
   
        n = 7;
        cout<<"\nInverse Diamond Pattern for n = "<<n;
        printDiamond(n);
    }

Java

// Java Code to print
// the inverse diamond shape
 
import java.util.*;
 
class GFG {
 
    // Function to Print Inverse Diamond pattern
    // with 2n-1 rows
    static void printDiamond(int n)
    {
        System.out.println();
 
        int i, j = 0;
 
        // for top half
        for (i = 0; i < n; i++) {
 
            // for left *
            for (j = i; j < n; j++)
                System.out.print("*");
 
            // for middle " "
            for (j = 0; j < 2 * i + 1; j++)
                System.out.print(" ");
 
            // for right *
            for (j = i; j < n; j++)
                System.out.print("*");
 
            System.out.println();
        }
 
        // for below half
        for (i = 0; i < n - 1; i++) {
 
            // for left *
            for (j = 0; j < i + 2; j++)
                System.out.print("*");
 
            // for middle " "
            for (j = 0; j < 2 * (n - 1 - i) - 1; j++)
                System.out.print(" ");
 
            // for right *
            for (j = 0; j < i + 2; j++)
                System.out.print("*");
 
            System.out.println();
        }
 
        System.out.println();
    }
 
    // Driver Code
    public static void main(String[] args)
    {
 
        // Define n
        int n = 3;
        System.out.println("Inverse Diamond Pattern for n = " + n);
        printDiamond(n);
 
        n = 7;
        System.out.println("\nInverse Diamond Pattern for n = " + n);
        printDiamond(n);
    }
}

Python3

#Python3 program to print
# the inverse diamond shape
     
 
# Function to Print Inverse
# Diamond pattern
# with 2n-1 rows
def printDiamond(n) :
    print("")
    j = 0
     
    # for top half
    for i in range(0,n):
         
        # for left *
        for j in range(i,n):
            print("*",end="")
             
        # for middle " "
        for j in range(0,2 * i + 1):
            print(" ",end="")
             
        # for right *
        for j in range(i,n):
            print("*",end="")
             
        print("")
     
    # for below half
    for i in range(0,n-1):
         
        # for left *
        for j in range(0, i+2):
            print("*",end="")
             
        # for middle " "
        for j in range(0,2 * (n - 1 - i) - 1):
            print(" ",end="")
             
        # for right *
        for j in range(0, i+2):
            print("*",end="")
             
        print("")
         
    print("")
     
     
# Driver Code
 
if __name__=='__main__':
     
# Define n
    n = 3
    print("Inverse Diamond Pattern for n = ",n)
    printDiamond(n)
     
    n = 7
    print("\nInverse Diamond Pattern for n = ",n )
    printDiamond(n)
 
# this code is contributed by Smitha Dinesh Semwal

C#

// C# Code to print
// the inverse diamond shape
using System;
 
class GFG
{
 
// Function to Print Inverse
// Diamond pattern with 2n-1 rows
static void printDiamond(int n)
{
    Console.WriteLine();
 
    int i, j = 0;
 
    // for top half
    for (i = 0; i < n; i++)
    {
 
        // for left *
        for (j = i; j < n; j++)
            Console.Write("*");
 
        // for middle " "
        for (j = 0; j < 2 * i + 1; j++)
            Console.Write(" ");
 
        // for right *
        for (j = i; j < n; j++)
            Console.Write("*");
 
        Console.WriteLine();
    }
 
    // for below half
    for (i = 0; i < n - 1; i++)
    {
 
        // for left *
        for (j = 0; j < i + 2; j++)
            Console.Write("*");
 
        // for middle " "
        for (j = 0; j < 2 * (n - 1 - i) - 1; j++)
            Console.Write(" ");
 
        // for right *
        for (j = 0; j < i + 2; j++)
            Console.Write("*");
 
        Console.WriteLine();
    }
 
    Console.WriteLine();
}
 
// Driver Code
public static void Main()
{
 
    // Define n
    int n = 3;
    Console.WriteLine("Inverse Diamond " +
                      "Pattern for n = " + n);
    printDiamond(n);
 
    n = 7;
    Console.WriteLine("\nInverse Diamond " +
                        "Pattern for n = " + n);
    printDiamond(n);
}
}
 
// This code is contributed
// by inder_verma.

PHP

<?php
// PHP Code to print
// the inverse diamond shape
 
// Function to Print Inverse
// Diamond pattern with 2n-1 rows
function printDiamond($n)
{
    echo"\n";
 
    $i; $j = 0;
 
    // for top half
    for ($i = 0; $i < $n; $i++)
    {
 
        // for left *
        for ($j = $i; $j < $n; $j++)
            echo("*");
 
        // for middle " "
        for ($j = 0;
             $j < 2 * $i + 1; $j++)
            echo(" ");
 
        // for right *
        for ($j = $i; $j < $n; $j++)
            echo("*");
 
        echo("\n");
    }
 
    // for below half
    for ($i = 0; $i < $n - 1; $i++)
    {
 
        // for left *
        for ($j = 0; $j < $i + 2; $j++)
            echo("*");
 
        // for middle " "
        for ($j = 0;
             $j < 2 * ($n - 1 - $i) - 1; $j++)
            echo(" ");
 
        // for right *
        for ($j = 0; $j < $i + 2; $j++)
            echo("*");
 
        echo("\n");
    }
 
    echo("\n");
}
 
// Driver Code
 
// Define n
$n = 3;
echo("Inverse Diamond Pattern for n = " );
echo($n);
printDiamond($n);
 
$n = 7;
echo("\nInverse Diamond Pattern for n = " );
echo($n);
printDiamond($n);
 
// This code is contributed
// by inder_verma.
?>

Javascript

<script>
 
      // JavaScript Code to print
      // the inverse diamond shape
 
      // Function to Print Inverse Diamond pattern
      // with 2n-1 rows
      function printDiamond(n) {
        document.write("<br><br>");
 
        var i,
          j = 0;
 
        // for top half
        for (i = 0; i < n; i++) {
          // for left *
          for (j = i; j < n; j++)
          document.write("*");
 
          // for middle " "
          for (j = 0; j < 2 * i + 1; j++)
          document.write("  ");
 
          // for right *
          for (j = i; j < n; j++)
          document.write("*");
 
          document.write("<br>");
        }
 
        // for below half
        for (i = 0; i < n - 1; i++) {
          // for left *
          for (j = 0; j < i + 2; j++)
          document.write("*");
 
          // for middle " "
          for (j = 0; j < 2 * (n - 1 - i) - 1; j++)
            document.write("  ");
 
          // for right *
          for (j = 0; j < i + 2; j++)
          document.write("*");
 
          document.write("<br>");
        }
 
        document.write("<br>");
      }
 
      // Driver Code
      // Define n
      var n = 3;
      document.write("Inverse Diamond Pattern for n = " + n);
      printDiamond(n);
 
      n = 7;
      document.write("\nInverse Diamond Pattern for n = " + n);
      printDiamond(n);
       
</script>
Producción: 

Inverse Diamond Pattern for n = 3

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


Inverse Diamond Pattern for n = 7

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

 

Complejidad de Tiempo : O(n 2 )
Espacio Auxiliar : O(1)

Publicación traducida automáticamente

Artículo escrito por Code_r 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 *