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.
Input:
3 4
Output:
3
44
555
6666
555
44
3
N
downwards.#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;
}
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.
Input:
4
Output:
1
2*2
3*3*3
4*4*4*4
4*4*4*4
3*3*3
2*2
1
*
).#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;
}
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.
Input:
4
Output:
1
2*3
4*5*6
7*8*9*10
7*8*9*10
4*5*6
2*3
1
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();
}
}
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.
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.