 # PROBLEM LINK: Contest Page | CodeChef

Practice

Author: Setter’s name
Tester: Tester’s name
Editorialist: Editorialist’s name
DIFFICULTY : BEGINNER

# PREREQUISITES:

Loops, arrays and patterns

# PROBLEM:

Sherin likes to play with numbers.Sherin decides to make a pyramid using numbers.Help Sherin to make the pyramid.

# QUICK EXPLANATION:

Print the pyramid according to the number of rows.

# EXPLANATION:

the given pattern can be expressed as
1
2 3 2
3 4 5 4 3
4 5 6 7 6 5 4

one way to view it is
1
2 3 4
3 4 5 4 3
4 5 6 7 6 5 4

The size of bold elements is increasing by 1 and the first element value is increasing by 1 each time. store this in an array and print the reverse of bold values other than last value. This is one way to solve it.

# SOLUTIONS:

Setter's Solution

#include
using namespace std;

int main()
{
int rows,t, count = 0, count1 = 0, k = 0;
cin>>t;
while(t–)
{
cin >> rows;

``````for(int i = 1; i <= rows; ++i)
{
for(int j = 1; j <= rows-i; ++j)
{

++count;
}

while(k != 2*i-1)
{
if (count <= rows-1)
{
cout << i+k<<" ";
++count;
}
else
{
++count1;
cout << i+k-2*count1<<" ";
}
++k;
}
count1 = count = k = 0;

cout << endl;
}
}
return 0;
``````

}

Tester's Solution

#include
using namespace std;

int main()
{
int rows,t, count = 0, count1 = 0, k = 0;
cin>>t;
while(t–)
{
cin >> rows;

``````for(int i = 1; i <= rows; ++i)
{
for(int j = 1; j <= rows-i; ++j)
{

++count;
}

while(k != 2*i-1)
{
if (count <= rows-1)
{
cout << i+k<<" ";
++count;
}
else
{
++count1;
cout << i+k-2*count1<<" ";
}
++k;
}
count1 = count = k = 0;

cout << endl;
}
}
return 0;
``````

}

Editorialist's Solution

T=int(input())
while(T):
R=int(input())
k=1
B=[]
for i in range(1,R+1):
A=[]
for j in range(i,k+1):
A.append(j)
if(i!=1):
B=A[::-1]
A=A[:]+B[1:]
for _ in A:
print(_,end=" ")
print()
k+=2
T-=1