Dado un entero positivo n . El problema es imprimir el patrón de pirámide como se describe en los ejemplos a continuación.
Ejemplos:
Input : n = 4 Output : 1 3*2 4*5*6 10*9*8*7 Input : n = 5 Output : 1 3*2 4*5*6 10*9*8*7 11*12*13*14*15
Fuente: Experiencia de entrevista de Amdocs | Serie 1
Enfoque: para la fila de números impares, los valores se muestran en orden creciente y para la fila de números pares, los valores se muestran en orden decreciente. El único otro truco es cómo iterar los bucles.
Algoritmo:
printPattern(int n) Declare j, k Initialize k = 0 for i = 1 to n if i%2 != 0 for j = k+1, j < k+i, j++ print j and "*" print j and new line k = ++j else k = k+i-1 for j = k, j > k-i+1, j-- print j and "*"; print j and new line
C++
// C++ implementation to print the following // pyramid pattern #include <bits/stdc++.h> using namespace std; // function to print the following pyramid pattern void printPattern(int n) { int j, k = 0; // loop to decide the row number for (int i=1; i<=n; i++) { // if row number is odd if (i%2 != 0) { // print numbers with the '*' sign in // increasing order for (j=k+1; j<k+i; j++) cout << j << "*"; cout << j++ << endl; // update value of 'k' k = j; } // if row number is even else { // update value of 'k' k = k+i-1; // print numbers with the '*' in // decreasing order for (j=k; j>k-i+1; j--) cout << j << "*"; cout << j << endl; } } } // Driver program to test above int main() { int n = 5; printPattern(n); return 0; }
Java
// Java implementation to print the // following pyramid pattern public class Pyramid_Pattern { // function to print the following pyramid // pattern static void printPattern(int n) { int j, k = 0; // loop to decide the row number for (int i = 1; i <= n; i++) { // if row number is odd if (i % 2 != 0) { // print numbers with the '*' // sign in increasing order for (j = k + 1; j < k + i; j++) System.out.print(j + "*"); System.out.println(j++); // update value of 'k' k = j; } // if row number is even else { // update value of 'k' k = k + i - 1; // print numbers with the '*' in // decreasing order for (j = k; j > k - i + 1; j--) System.out.print(j + "*"); System.out.println(j); } } } // Driver program to test above public static void main(String args[]) { int n = 5; printPattern(n); } } // This code is contributed by Sumit Ghosh
Python3
# Python3 implementation to print the # following pyramid pattern # function to print the # following pyramid pattern def printPattern(n) : j, k = 0, 0 # loop to decide the row number for i in range(1, n + 1) : # if row number is odd if i % 2 != 0 : # print numbers with # the '*' sign in # increasing order for j in range(k + 1, k + i) : print(str(j) + "*", end = "") j = k + i print(j) j += 1 # update value of 'k' k = j # if row number is even else : # update value of 'k' k = k + i - 1 # print numbers with the # '*' in decreasing order for j in range(k, k - i + 1, -1) : print(str(j) + "*", end = "") j = k - i + 1 print(j) # Driver Code if __name__ == "__main__" : n = 5 # function calling printPattern(n) # This code is contributed # by ANKITRAI1
C#
// C# implementation to print the // following pyramid pattern using System; public class Pyramid_Pattern { // function to print the following pyramid // pattern static void printPattern(int n) { int j, k = 0; // loop to decide the row number for (int i = 1; i <= n; i++) { // if row number is odd if (i % 2 != 0) { // print numbers with the '*' // sign in increasing order for (j = k + 1; j < k + i; j++) Console.Write(j + "*"); Console.WriteLine(j++); // update value of 'k' k = j; } // if row number is even else { // update value of 'k' k = k + i - 1; // print numbers with the '*' in // decreasing order for (j = k; j > k - i + 1; j--) Console.Write(j + "*"); Console.WriteLine(j); } } } // Driver program to test above public static void Main() { int n = 5; printPattern(n); } } // This code is contributed by vt_m.
PHP
<?php // PHP implementation to print the // following pyramid pattern // function to print the following // pyramid pattern function printPattern($n) { $k = 0; // loop to decide // the row number for ($i = 1; $i <= $n; $i++) { // if row number is odd if ($i % 2 != 0) { // print numbers with the '*' // sign in increasing order for ($j = $k + 1; $j < $k + $i; $j++) echo $j. "*"; echo $j++ ."\n"; // update value of 'k' $k = $j; } // if row number is even else { // update value of 'k' $k = $k + $i - 1; // print numbers with the // '*' in decreasing order for ($j = $k; $j > $k - $i + 1; $j--) echo $j . "*"; echo $j ."\n" ; } } } // Driver Code $n = 5; printPattern($n); // This code is contributed by Sam007 ?>
Javascript
<script> // JavaScript implementation to print the // following pyramid pattern // Function to print the following // pyramid pattern function printPattern(n) { var j, k = 0; // Loop to decide the row number for(var i = 1; i <= n; i++) { // If row number is odd if (i % 2 != 0) { // Print numbers with the '*' // sign in increasing order for(j = k + 1; j < k + i; j++) document.write(j + "* "); document.write(j++ + "<br>"); // Update value of 'k' k = j; } // If row number is even else { // Update value of 'k' k = k + i - 1; // Print numbers with the '*' in // decreasing order for(j = k; j > k - i + 1; j--) document.write(j + "*"); document.write(j + "<br>"); } } } // Driver code var n = 5; printPattern(n); // This code is contributed by akshitsaxenaa09 </script>
Producción:
1 3*2 4*5*6 10*9*8*7 11*12*13*14*15
Complejidad de tiempo: O((n * (n + 1)) / 2)
Este artículo es una contribución de Ayush Jauhari . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@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