Imprimir Triángulo patrón separado

Dado un número N , la tarea es imprimir el patrón separado por triángulos.
 

Patrón de triángulos separados: patrón en el que cuatro triángulos (izquierda, abajo, derecha, arriba) están separados por una barra inclinada hacia adelante y hacia atrás, vea esto a continuación: 
\*****/ 
*\***/* 
**\*/* * 
***/*** 
**/*\** 
*/***\* 
/*****\ 
 

Nota: N debe ser un número impar y el valor de N debe ser mayor que 4.
Ejemplos: 
 

Input: N = 5
Output: 
        \***/
        *\*/*
        **/**
        */*\*
        /***\

Input: N = 7
Output:
        \*****/
        *\***/*
        **\*/**
        ***/***
        **/*\**
        */***\*
        /*****\

Enfoque: al observar el patrón anterior, cuando los índices de filas y columnas son iguales, se imprime y cuando la suma de los índices de filas y columnas es N , se imprime ‘/’ . A continuación se muestra el enfoque recursivo :
 

  1. Use dos valores i para las filas y j para la columna, que itera de (0, 0) a (N-1, N-1) para imprimir el patrón requerido.
  2. Itera recursivamente de (0, 0) a (N-1, N-1)
    • Caso base: si los índices de filas y columnas son mayores o iguales a N , es la condición de terminación para el patrón dado. 
       
if(i >= N) {
  return 0;
}
if(j >= N) {
  return 1;
}
  •  
  • Declaración de impresión: si no se cumple la condición del caso base, imprima ‘/’ , y ‘*’ según las siguientes condiciones: 
     
if(i==j) {
   print('')
}
else if(i + j == N-1) {
   print('/')
}
else {
   print('*')
}
  •  
  • Llamada recursiva: en cada llamada recursiva (excepto el caso base), devuelva la función recursiva para la próxima iteración de filas y columnas: 
     
// Recursive call for rows
recursive_function(i, j+1, N)

// Recursive call for changing rows
recursive_function(i+1, j, N)
  •  

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

C++

// C++ program to print the triangle
// separated pattern using
// star and slash character
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to print pattern recursively
int printPattern(
    int i, int j, int n)
{
    // Base Case
    if (j >= n) {
        return 0;
    }
    if (i >= n) {
        return 1;
    }
 
    // Conditions to print slash
    if (j == i || j == n - 1 - i) {
 
        // Condition to print
        // forward slash
        if (i == n - 1 - j) {
            cout << "/";
        }
 
        // Condition to print
        // backward slash
        else {
            cout << "\\";
        }
    }
 
    // Else print '*'
    else {
        cout << "*";
    }
 
    // Recursive call for rows
    if (printPattern(i, j + 1, n)
        == 1) {
        return 1;
    }
 
    cout << endl;
 
    // Recursive call for changing
    // the rows
    return printPattern(i + 1, 0, n);
}
 
// Driver Code
int main()
{
    int N = 9;
 
    // Function Call
    printPattern(0, 0, N);
 
    return 0;
}

Java

// Java program to print the triangle
// separated pattern using
// star and slash character
class GFG{
  
// Function to print pattern recursively
static int printPattern(
    int i, int j, int n)
{
    // Base Case
    if (j >= n) {
        return 0;
    }
    if (i >= n) {
        return 1;
    }
  
    // Conditions to print slash
    if (j == i || j == n - 1 - i) {
  
        // Condition to print
        // forward slash
        if (i == n - 1 - j) {
            System.out.print("/");
        }
  
        // Condition to print
        // backward slash
        else {
            System.out.print("\\");
        }
    }
  
    // Else print '*'
    else {
        System.out.print("*");
    }
  
    // Recursive call for rows
    if (printPattern(i, j + 1, n)
        == 1) {
        return 1;
    }
  
    System.out.println();
  
    // Recursive call for changing
    // the rows
    return printPattern(i + 1, 0, n);
}
  
// Driver Code
public static void main(String[] args)
{
    int N = 9;
  
    // Function Call
    printPattern(0, 0, N);
}
}
 
// This code is contributed by Rajput-Ji

Python3

# Python 3 program to print the triangle
# separated pattern using
# star and slash character
 
# Function to print pattern recursively
def printPattern(i,j, n):
 
    # Base Case
    if (j >= n) :
        return 0
    if (i >= n):
        return 1
 
    # Conditions to print slash
    if (j == i or j == n - 1 - i):
 
        # Condition to print
        # forward slash
        if (i == n - 1 - j):
            print("/",end="")
 
        # Condition to print
        # backward slash
        else:
            print("\\",end="")
 
    # Else print '*'
    else:
        print("*",end="")
 
    # Recursive call for rows
    if (printPattern(i, j + 1, n)
        == 1):
        return 1
 
    print()
 
    # Recursive call for changing
    # the rows
    return printPattern(i + 1, 0, n)
 
# Driver Code
if __name__ == "__main__":
 
    N = 9
 
    # Function Call
    printPattern(0, 0, N)
 
# This code is contributed by chitranayal

C#

// C# program to print the triangle
// separated pattern using
// star and slash character
using System;
 
class GFG{
   
// Function to print pattern recursively
static int printPattern(
    int i, int j, int n)
{
    // Base Case
    if (j >= n) {
        return 0;
    }
    if (i >= n) {
        return 1;
    }
   
    // Conditions to print slash
    if (j == i || j == n - 1 - i) {
   
        // Condition to print
        // forward slash
        if (i == n - 1 - j) {
            Console.Write("/");
        }
   
        // Condition to print
        // backward slash
        else {
            Console.Write("\\");
        }
    }
   
    // Else print '*'
    else {
        Console.Write("*");
    }
   
    // Recursive call for rows
    if (printPattern(i, j + 1, n)
        == 1) {
        return 1;
    }
   
    Console.WriteLine();
   
    // Recursive call for changing
    // the rows
    return printPattern(i + 1, 0, n);
}
   
// Driver Code
public static void Main(String[] args)
{
    int N = 9;
   
    // Function Call
    printPattern(0, 0, N);
}
}
 
// This code is contributed by Rajput-Ji

Javascript

<script>
// Javascript program to print the triangle
// separated pattern using
// star and slash character
 
// Function to print pattern recursively
function printPattern(i,j,n)
{
    // Base Case
    if (j >= n) {
        return 0;
    }
    if (i >= n) {
        return 1;
    }
    
    // Conditions to print slash
    if (j == i || j == n - 1 - i) {
    
        // Condition to print
        // forward slash
        if (i == n - 1 - j) {
            document.write("/");
        }
    
        // Condition to print
        // backward slash
        else {
            document.write("\\");
        }
    }
    
    // Else print '*'
    else {
        document.write("*");
    }
    
    // Recursive call for rows
    if (printPattern(i, j + 1, n)
        == 1) {
        return 1;
    }
    
    document.write("<br>");
    
    // Recursive call for changing
    // the rows
    return printPattern(i + 1, 0, n);
}
 
// Driver Code
 
let N = 9;
// Function Call
printPattern(0, 0, N);
 
 
// This code is contributed by avanitrachhadiya2155
</script>
Producción: 

\*******/
*\*****/*
**\***/**
***\*/***
****/****
***/*\***
**/***\**
*/*****\*
/*******\

 

Publicación traducida automáticamente

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