Join Regular Classroom : Visit ClassroomTech

Functions and Recursions | Pyramid Problem | Codewindow.in

Identify the logic behind the series 6 28 66 120 190 276…..The numbers in the series should be used to create a Pyramid. The base of the Pyramid will be the widest and will start converging towards the top where there will only be one element. Each successive layer will have one number less than that on the layer below it. The width of the Pyramid is specified by an input parameter N. In other words there will be N numbers on the bottom layer of the pyramid. The Pyramid construction rules are as follows

1. First number in the series should be at the top of the Pyramid
2. Last N number of the series should be on the bottommost layer of the Pyramid, with Nth number being the right-most number of this layer.
3. Numbers less than 5-digits must be padded with zeroes to maintain the sanctity of a Pyramid when printed. Have a look at the examples below to get a pictorial understanding of what this rule actually means.

Example
If input is 2, output will be
00006
00028 00066
If input is 3, output will be
00006
00028 00066
00120 00190 00276

Input Format:
First line of input will contain number N that corresponds to the width of the bottom-most layer of the Pyramid.

Output Format:
The Pyramid constructed out of numbers in the series as per stated construction rules.

Constraints:
0<N<=14

Solution: In C

#include<stdio.h>

int main()
{
    int x=6,y=22,n,i,j,k=0;
    scanf("%d",&n);
    if(n>0 && n<=14)
    {
        for(i=1;i<=n;i++)
        {
            for(k=1;k<=i;k++)
            {
                printf("%05d ",x);
                x=x+y;
                y=y+16;
            }
            printf("\n");
        }
    }
    return 0;
}

Solution: In Java

import java.util.*;

public class Main{
    public static void main(String[] args)
    {
        int x=6,y=22,n,i,j,k=0;
        Scanner ip=new Scanner(System.in);
        n=ip.nextInt();
        if(n>0 && n<=14)
        {
            for(i=1;i<=n;i++)
            {
                for(k=1;k<=i;k++)
                {
                    System.out.printf("%05d ",x);
                    x=x+y;
                    y=y+16;
                }
                System.out.printf("\n");
            }
        }
    }
}

Solution: In Python 3

n=int(input())
x = 6
y = 22
if(n>0 and n<=14):
    for i in range(1,n+1):
        for k in range(1,i+1):
            print(format(x, "05"), end =" ")
            x=x+y
            y=y+16
        print()

Also Checkout

Recent Posts
Categories
Pages