Printing Pattern using loops ! In C
Problems
Print a pattern of numbers from to as shown below. Each of the numbers is separated by a single space.
4 4 4 4 4 4 4
4 3 3 3 3 3 4
4 3 2 2 2 3 4
4 3 2 1 2 3 4
4 3 2 2 2 3 4
4 3 3 3 3 3 4
4 4 4 4 4 4 4
Input Format
The input will contain a single integer .
Constraints
Sample Input 0
2
Sample Output 0
2 2 2
2 1 2
2 2 2
Sample Input 1
5
Sample Output 1
5 5 5 5 5 5 5 5 5
5 4 4 4 4 4 4 4 5
5 4 3 3 3 3 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 2 1 2 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 3 3 3 3 4 5
5 4 4 4 4 4 4 4 5
5 5 5 5 5 5 5 5 5
Sample Input 2
7
Sample Output 2
7 7 7 7 7 7 7 7 7 7 7 7 7
7 6 6 6 6 6 6 6 6 6 6 6 7
7 6 5 5 5 5 5 5 5 5 5 6 7
7 6 5 4 4 4 4 4 4 4 5 6 7
7 6 5 4 3 3 3 3 3 4 5 6 7
7 6 5 4 3 2 2 2 3 4 5 6 7
7 6 5 4 3 2 1 2 3 4 5 6 7
7 6 5 4 3 2 2 2 3 4 5 6 7
7 6 5 4 3 3 3 3 3 4 5 6 7
7 6 5 4 4 4 4 4 4 4 5 6 7
7 6 5 5 5 5 5 5 5 5 5 6 7
7 6 6 6 6 6 6 6 6 6 6 6 7
7 7 7 7 7 7 7 7 7 7 7 7 7
Solution
#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>int main(){ int i,j,k,m,n,x; scanf("%d",&n); k=n; m = n+(n-1); for(i=0;i<m;i++) { for(j=0;j<m;j++) { if(i<=n-1) { if(i==0) { printf("%d ",k); } if(i>=1) { if(j<i) { printf("%d ",k-j); } else if(j>=i && j<m-i) { printf("%d ",k-i); } else { printf("%d ",(j-k+1)+1); } } } else if(i==n-1) { if(j<n) { printf("%d ",k-j); } else { printf("%d ",(j-k+1)+1); } } else if(i>=n) { x = m-i-1; if(i==m) { printf("%d ",k); } if(j<x) { printf("%d ",k-j); } else if(j>=x && j<m-x) { printf("%d ",k-x); } else { printf("%d ",(j-k+1)+1); } } } printf("\n"); }}
Tags:
HackerRank C