Please provide me with the detailed solution of this question as I am not able to understand with the solution provided
Please send detailed solution
For pattern building problems, i would suggest you to dry run your own code and point out where it is going wrong.
Anyway, i am giving you some hints, you can try it again with it:
Consider for n=4
1________1
1 2_____2 1
1 2 3__3 2 1
1 2 3 4 3 2 1
For the first row, there are 2*n-3 spaces and for subsequent rows, it decrements by 2.
First work to print the numbers in increasing order then print the spaces accordingly and then the same pattern of numbers but in reverse order.
So first do work for numbers then for spaces and then for numbers again.
And then update variables accordingly for next iterations.
Each number is separated from other by a tab so use β \tβ for tab space.
int nsp=2*n-3; //initializing number of spaces
int nst=1; //initializing number of numbers
for(int i=1;i<=n;i++)
{
int num=1;
//work for numbers before spaces of center
for(int cst=1;cst<=nst;cst++)
{
if(cst!=n)
cout<<(num+"\t");
num++;
}
//work for spaces
for(int csp=1;csp<=nsp;csp++)
{
cout<<(" \t");
}
//work for numbers after spaces in center
for(int cst=num-1;cst>=1;cstβ)
{
cout<<(cst+"\t");
}
//preparation for next iteration
nsp=nsp-2;
nst++;
cout<<endl;
}
This solution is not producing correct output. Please check. Also please send a video explaining how to deal with this pattern as its confusing.
You can refer this code. Dry run it and try to understand.