उदाहरण
import java.util.*;
import java.lang.*;
public class Demo {
public static void main(String[] args) {
Scanner my_scan = new Scanner(System.in);
System.out.println("एक रेंज दर्ज करें");
int my_num = my_scan.nextInt();
int my_arr[][] = print_pattern(my_num);
int eq_val = 0, sub_val = my_num - 1, n = my_num;
int l = 0;
if (my_num % 2 == 0)
sub_val = my_num - 1;
else
sub_val = my_num;
for (int i = 0; i < n / 2; i++) {
for (int j = 0; j < n; j++) {
System.out.format("%3d", my_arr[eq_val][j]);
}
System.out.println("");
l = l + 2;
eq_val = l;
}
eq_val = my_num - 1;
for (int i = n / 2; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.format("%3d", my_arr[eq_val][j]);
}
sub_val = sub_val - 2;
eq_val = sub_val;
System.out.println("");
}
}
public static int[][] print_pattern(int n) {
int my_arr[][] = new int[n][n];
int eq_val = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
my_arr[i][j] = eq_val;
eq_val++;
}
}
return my_arr;
}
}
आउटपुट
एक रेंज दर्ज करें
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
16 17 18 19 20
6 7 8 9 10
व्याख्या: Demo क्लास में मुख्य फंक्शन होता है। ऊपरी सीमा रेंज लेने के लिए एक Scanner इंस्टेंस बनाया जाता है। उस रेंज तक के प्रत्येक पूर्णांक पर पुनरावृति की जाती है और 'print_pattern' फंक्शन को कॉल करके पैटर्न प्रिंट किया जाता है।
'print_pattern' फंक्शन मुख्य फंक्शन के बाद परिभाषित किया गया है। यह ऊपरी रेंज को पैरामीटर के रूप में लेता है, और एक दो-आयामी ऐरे बनाता है और इसके माध्यम से पुनरावृति करता है, और एक मान को 1 के रूप में पहले से परिभाषित करता है, जिसे ऐरे की प्रत्येक पुनरावृति के बाद इन्क्रीमेंट किया जाता है। ऐरे को फंक्शन से आउटपुट के रूप में लौटाया जाता है।
पैटर्न तर्क:
- पहले n×n मैट्रिक्स को 1 से n² तक क्रमिक रूप से भरें
- पहली छमाही पंक्तियों को क्रम में प्रिंट करें: पंक्ति 0, 2, 4...
- दूसरी छमाही पंक्तियों को उल्टे क्रम में प्रिंट करें: अंतिम पंक्ति, अंतिम-2, अंतिम-4...
सरलीकृत संस्करण:
public static void printSquarePattern(int n) {
int[][] matrix = new int[n][n];
int val = 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
matrix[i][j] = val++;
// पहली छमाही: सम सूचकांक पंक्तियाँ
for (int i = 0; i < n; i += 2)
printRow(matrix[i]);
// दूसरी छमाही: विषम सूचकांक पंक्तियाँ उल्टे क्रम में
for (int i = n - 1 - (n % 2); i >= 0; i -= 2)
printRow(matrix[i]);
}