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 :
- 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.
- 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.
- 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>
\*******/ *\*****/* **\***/** ***\*/*** ****/**** ***/*\*** **/***\** */*****\* /*******\
Publicación traducida automáticamente
Artículo escrito por MohammadMudassir y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA