Programa para imprimir la forma del diamante

Dado un número n , escriba un programa para imprimir una forma de diamante con 2n filas.
Ejemplos: 
 

diamond

C++

// C++ program to print diamond shape
// with 2n rows 
#include <bits/stdc++.h>
using namespace std;
  
// Prints diamond pattern with 2n rows 
void printDiamond(int n) 
{ 
    int space = n - 1; 
  
    // run loop (parent loop) 
    // till number of rows 
    for (int i = 0; i < n; i++) 
    { 
        // loop for initially space, 
        // before star printing 
        for (int j = 0;j < space; j++) 
            cout << " "; 
  
        // Print i+1 stars 
        for (int j = 0; j <= i; j++) 
            cout << "* "; 
  
        cout << endl; 
        space--; 
    } 
  
    // Repeat again in reverse order 
    space = 0; 
  
    // run loop (parent loop) 
    // till number of rows 
    for (int i = n; i > 0; i--) 
    { 
        // loop for initially space, 
        // before star printing 
        for (int j = 0; j < space; j++) 
            cout << " "; 
  
        // Print i stars 
        for (int j = 0;j < i;j++) 
            cout << "* ";
  
        cout << endl;
        space++; 
    } 
} 
  
// Driver code 
int main() 
{ 
    printDiamond(5); 
    return 0; 
} 
  
// This is code is contributed
// by rathbhupendra

C

// C program to print 
// diamond shape with 
// 2n rows
#include<stdio.h>
  
// Prints diamond 
// pattern with 2n rows
void printDiamond(int n)
{
    int space = n - 1;
  
    // run loop (parent loop)
    // till number of rows
    for (int i = 0; i < n; i++)
    {
        // loop for initially space, 
        // before star printing
        for (int j = 0;j < space; j++)
            printf(" ");
  
        // Print i+1 stars
        for (int j = 0;j <= i; j++)
            printf("* ");
  
        printf("\n");
        space--;
    }
  
    // Repeat again in 
    // reverse order
    space = 0;
  
    // run loop (parent loop)
    // till number of rows
    for (int i = n; i > 0; i--)
    {
        // loop for initially space, 
        // before star printing
        for (int j = 0; j < space; j++)
            printf(" ");
  
        // Print i stars
        for (int j = 0;j < i;j++)
            printf("* ");
  
        printf("\n");
        space++;
    }
}
  
// Driver code
int main()
{
    printDiamond(5);
    return 0;
}

Java

// JAVA Code to print 
// the diamond shape
import java.util.*;
  
class GFG
{
      
    // Prints diamond pattern
    // with 2n rows
    static void printDiamond(int n)
    {
        int space = n - 1;
      
        // run loop (parent loop) 
        // till number of rows
        for (int i = 0; i < n; i++)
        {
            // loop for initially space, 
            // before star printing
            for (int j = 0; j < space; j++)
                System.out.print(" ");
      
            // Print i+1 stars
            for (int j = 0; j <= i; j++)
                System.out.print("* ");
      
            System.out.print("\n");
            space--;
        }
      
        // Repeat again in
        // reverse order
        space = 0;
      
        // run loop (parent loop) 
        // till number of rows
        for (int i = n; i > 0; i--)
        {
            // loop for initially space, 
            // before star printing
            for (int j = 0; j < space; j++)
                System.out.print(" ");
      
            // Print i stars
            for (int j = 0; j < i; j++)
                System.out.print("* ");
      
            System.out.print("\n");
            space++;
        }
    }
      
    // Driver Code
    public static void main(String[] args) 
    {
        printDiamond(5);
          
    }
}
  
// This code is contributed
// by Arnav Kr. Mandal. 

Python3

# Python program to 
# print Diamond shape
  
# Function to print
# Diamond shape
def Diamond(rows):
    n = 0
    for i in range(1, rows + 1):
        # loop to print spaces
        for j in range (1, (rows - i) + 1):
            print(end = " ")
          
        # loop to print star
        while n != (2 * i - 1):
            print("*", end = "")
            n = n + 1
        n = 0
          
        # line break
        print() 
  
    k = 1
    n = 1
    for i in range(1, rows):
        # loop to print spaces
        for j in range (1, k + 1):
            print(end = " ")
        k = k + 1
          
        # loop to print star
        while n <= (2 * (rows - i) - 1):
            print("*", end = "")
            n = n + 1
        n = 1
        print()
  
# Driver Code
# number of rows input
rows = 5
Diamond(rows)

C#

// C# Code to print 
// the diamond shape
using System;
  
class GFG 
{
      
    // Prints diamond pattern
    // with 2n rows
    static void printDiamond(int n)
    {
        int space = n - 1;
      
        // run loop (parent loop) 
        // till number of rows
        for (int i = 0; i < n; i++)
        {
            // loop for initially space,
            // before star printing
            for (int j = 0; j < space; j++)
                Console.Write(" ");
      
            // Print i+1 stars
            for (int j = 0; j <= i; j++)
                Console.Write("* ");
      
            Console.Write("\n");
            space--;
        }
      
        // Repeat again in
        // reverse order
        space = 0;
      
        // run loop (parent loop)
        // till number of rows
        for (int i = n; i > 0; i--)
        {
            // loop for initially space, 
            // before star printing
            for (int j = 0; j < space; j++)
                Console.Write(" ");
      
            // Print i stars
            for (int j = 0; j < i; j++)
                Console.Write("* ");
      
            Console.Write("\n");
            space++;
        }
    }
      
    // Driver Code
    public static void Main() 
    {
        printDiamond(5);
          
    }
}
  
// This code is contributed 
// by Smitha Semwal. 

PHP

<?php
// PHP program to print 
// diamond shape with 
// 2n rows
  
// Prints diamond $
// pattern with 2n rows
function printDiamond($n)
{
    $space = $n - 1;
  
    // run loop (parent loop)
    // till number of rows
    for ($i = 0; $i < $n; $i++)
    {
          
        // loop for initially space, 
        // before star printing
        for ($j = 0;$j < $space; $j++)
            printf(" ");
  
        // Print i+1 stars
        for ($j = 0;$j <= $i; $j++)
            printf("* ");
  
        printf("\n");
        $space--;
    }
  
    // Repeat again in 
    // reverse order
    $space = 0;
  
    // run loop (parent loop)
    // till number of rows
    for ($i = $n; $i > 0; $i--)
    {
          
        // loop for initially space, 
        // before star printing
        for ($j = 0; $j < $space; $j++)
            printf(" ");
  
        // Pr$i stars
        for ($j = 0;$j < $i;$j++)
            printf("* ");
  
        printf("\n");
        $space++;
    }
}
  
    // Driver code
    printDiamond(5);
  
// This code is contributed by Anuj_67
?>

Javascript

<script>
      // JavaScript program to print diamond shape
      // with 2n rows
  
      // Prints diamond pattern with 2n rows
      function printDiamond(n) {
        var space = n - 1;
  
        // run loop (parent loop)
        // till number of rows
        for (var i = 0; i < n; i++) {
          // loop for initially space,
          // before star printing
          for (var j = 0; j < space; j++) document.write("  ");
  
          // Print i+1 stars
          for (var j = 0; j <= i; j++) document.write("*" + "  ");
  
          document.write("<br>");
          space--;
        }
  
        // Repeat again in reverse order
        space = 0;
  
        // run loop (parent loop)
        // till number of rows
        for (var i = n; i > 0; i--) 
        {
          
          // loop for initially space,
          // before star printing
          for (var j = 0; j < space; j++) document.write("  ");
  
          // Print i stars
          for (var j = 0; j < i; j++) document.write("*" + "  ");
  
          document.write("<br>");
          space++;
        }
      }
  
      // Driver code
      printDiamond(5);
        
      // This code is contributed by rdtank.
    </script>
Producción

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

Complejidad de tiempo: O(n*n) ya que estamos recorriendo filas y columnas de una cuadrícula para imprimir espacios ‘ ‘ y estrellas ‘*’ .

Espacio Auxiliar: O(1), No se usa Espacio extra.

Enfoque 2: Resolviendo el problema usando Recursión

Implementación:

C++

// C++ program to print daimond pattern using recursion
#include <bits/stdc++.h>
using namespace std;
void gotonextLine(int k, int i, int z)
{
    if (k == i) // base case
        return;
    cout << "* ";
    gotonextLine(k + z, i, z);
}
void addblankSpaceInDiamond(
    int j, int i, int z) // print blank space of diamond
{
    if (j == i)
        return;
    cout << " ";
    addblankSpaceInDiamond(j + z, i, z);
}
void upperDiamond(int row, int i)
{
    if (i > row) // base case
        return;
    addblankSpaceInDiamond(row, i, -1);
    gotonextLine(0, i, 1);
    cout << endl;
    upperDiamond(row, i + 1); // recursive call
}
void lowerDiamond(int row,
                  int i) // print the next line of diamond
{
    if (i > row) // base case
        return;
    addblankSpaceInDiamond(0, i, 1);
    gotonextLine(row, i, -1);
    cout << endl;
    lowerDiamond(row, i + 1);
}
int main()
{
    int row;
    row = 5;
    upperDiamond(row, 0); // print uper part of triangle
    lowerDiamond(row, 1); // print lower part of diamond
    return 0;
    // this code is contributed by Shivesh Kumar Dwivedi
}

Python3

def gotonextLine(k, i, z):
  # base case
    if (k == i):
      return
    print("* ", end=""),
    gotonextLine(k + z, i, z)
  
# print blank space of diamond
def addblankSpaceInDiamond(j,i,z):
    if (j == i):
      return
    print(" ",end=""),
    addblankSpaceInDiamond(j + z, i, z)
  
def upperDiamond(row,i):
  # base case
    if (i > row):
      return
    addblankSpaceInDiamond(row, i, -1)
    gotonextLine(0, i, 1)
    print("\n",end=""),
    upperDiamond(row, i + 1) # recursive call
  
  
def lowerDiamond(row,i):
  # print the next line of diamond
    if (i > row): # base case
      return
    addblankSpaceInDiamond(0, i, 1)
    gotonextLine(row, i, -1)
    print("\n",end=""),
    lowerDiamond(row, i + 1)
  
# Code
row = 5
upperDiamond(row, 0) # print uper part of triangle
lowerDiamond(row, 1) # print lower part of diamond
  
# This code is contributed by akashish__

C#

using System;
  
public class GFG{
  
  public static void gotonextLine(int k, int i, int z)
  {
    if (k == i) // base case
      return;
    Console.Write("* ");
    gotonextLine(k + z, i, z);
  }
  
  public static void addblankSpaceInDiamond(
    int j, int i, int z) // print blank space of diamond
  {
    if (j == i)
      return;
    Console.Write(" ");
    addblankSpaceInDiamond(j + z, i, z);
  }
  
  public static void upperDiamond(int row, int i)
  {
    if (i > row) // base case
      return;
    addblankSpaceInDiamond(row, i, -1);
    gotonextLine(0, i, 1);
    Console.Write("\n");
    upperDiamond(row, i + 1); // recursive call
  }
  
  
  public static void lowerDiamond(int row,
                                  int i) // print the next line of diamond
  {
    if (i > row) // base case
      return;
    addblankSpaceInDiamond(0, i, 1);
    gotonextLine(row, i, -1);
    Console.Write("\n");
    lowerDiamond(row, i + 1);
  }
  
  public static void Main ()
  {
  
    // Code
    int row;
    row = 5;
    upperDiamond(row, 0); // print uper part of triangle
    lowerDiamond(row, 1); // print lower part of diamond
  }
}
  
// This code is contributed by akashish__
Producción

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

Este artículo es aportado por Rahul Singh (Nit KKR) y mejorado por Himanshu Patel(@prophet1999) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

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