Hello coders, today we will be solving Printing Pattern Using Loops in C HackerRank Solution.
Task
Print a pattern of numbers from 1 to n 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 n.
Constraints
1 ≤ n ≤ 1000
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 - Printing Pattern Using Loops in C - Hacker Rank 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"); } }
Disclaimer: The above Problem (Printing Pattern Using Loops in C) is generated by Hacker Rank but the Solution is provided by Sloth Coders.
A Sloth Who Code
Sloth Coders
Also Read: