Diamond pattern printing using numbers | Diamond number patterns | FACE Prep

Diamond pattern printing using numbers | Diamond number patterns | FACE Prep

Diamond pattern printing using numbers | Diamond number patterns | FACE Prep

Introduction

Pattern printing is an essential topic in programming, commonly asked in interviews and competitive coding challenges. Among these, diamond patterns using numbers are both visually appealing and a great way to test logic-building skills.

This guide covers different diamond-based number patterns, their logic, and optimized code implementations in C, C++, Java, and Python.

What You’ll Learn:

  • Half-Diamond Pattern using Numbers
  • Half-Diamond Pattern using Numbers and Stars
  • Full-Diamond Pattern using Numbers and Stars
  • Code Implementations in Multiple Languages
  • Suggested Visuals for Better Understanding

Pattern 1: Half-Diamond Pattern Using Numbers

Example Input & Output

Input:
3 4

Output:

3  
44
555
6666
555
44
3

Logic Behind the Pattern

  • The first half of the pattern increases in both rows and digit repetition.
  • The second half mirrors the first half in reverse order.
  • Numbers increase from input value N downwards.

Code Implementation

C Program

#include <stdio.h>

void printHalfDiamond(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++)
printf("%d", n + i);
printf("\n");
}
for (int i = n - 2; i >= 0; i--) {
for (int j = 0; j <= i; j++)
printf("%d", n + i);
printf("\n");
}
}

int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
printHalfDiamond(num);
return 0;
}

Python Program

def print_half_diamond(n):
for i in range(n):
print(str(n + i) * (i + 1))
for i in range(n - 2, -1, -1):
print(str(n + i) * (i + 1))

num = int(input("Enter a number: "))
print_half_diamond(num)

Optimization: Using str * n for easy pattern printing.


Pattern 2: Half-Diamond Using Numbers and Stars

Example Input & Output

Input:
4

Output:

1  
2*2
3*3*3
4*4*4*4
4*4*4*4
3*3*3
2*2
1

Logic Behind the Pattern

  • The pattern follows a diamond shape using numbers and stars (*).
  • Numbers appear increasingly from 1 to N in both upper and lower halves.

Code Implementation

C++ Program

#include <iostream>
using namespace std;

void printPattern(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << i;
if (j < i) cout << "*";
}
cout << endl;
}
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
cout << i;
if (j < i) cout << "*";
}
cout << endl;
}
}

int main() {
int num;
cout << "Enter a number: ";
cin >> num;
printPattern(num);
return 0;
}

Python Program

def print_half_diamond_star(n):
for i in range(1, n + 1):
print('*'.join([str(i)] * i))
for i in range(n, 0, -1):
print('*'.join([str(i)] * i))

num = int(input("Enter a number: "))
print_half_diamond_star(num)

Optimization: '*'.join(list) to format output efficiently.


Pattern 3: Full-Diamond Using Numbers & Stars

Example Input & Output

Input:
4

Output:

1  
2*3
4*5*6
7*8*9*10
7*8*9*10
4*5*6
2*3
1

Logic Behind the Pattern

  • Numbers increase consecutively instead of being repeated.
  • The upper half starts from 1, while the lower half mirrors the top.
  • Each row starts where the previous row ended.

Code Implementation

Java Program

import java.util.Scanner;

public class DiamondPattern {
static void printDiamond(int n) {
int num = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(num);
if (j < i) System.out.print("*");
num++;
}
System.out.println();
}
num -= n;
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print(num);
if (j < i) System.out.print("*");
num++;
}
System.out.println();
num -= (i - 1);
}
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = sc.nextInt();
printDiamond(num);
sc.close();
}
}

Python Program

def print_diamond(n):
num = 1
for i in range(1, n + 1):
print('*'.join(str(num + j) for j in range(i)))
num += i
num -= n
for i in range(n, 0, -1):
print('*'.join(str(num + j) for j in range(i)))
num -= (i - 1)

num = int(input("Enter a number: "))
print_diamond(num)

Optimization: Using Python’s list comprehension for efficient joining.


Conclusion

Diamond pattern printing is a great exercise to enhance looping concepts and problem-solving skills. This guide provided three different number-based diamond patterns with optimized code in C, C++, Java, and Python.

Diamond pattern printing using numbers
c