Imprime el siguiente patrón piramidal

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *