以矩阵对角线图案打印数字
给定一个整数N ,任务是打印给定的模式。
例子:
Input: 3
Output:
1 2 4
3 5 7
6 8 9
Input: 4
Output:
1 2 4 7
3 5 8 11
6 9 12 14
10 13 15 16
方法:
- 创建一个大小为NXN的矩阵,它将在打印前存储图案。
- 将元素存储在模式的上三角形中。正如所观察到的,当您沿对角线向下移动时,行索引增加 1,列索引减少 1。
- 上三角完成后,以与上三角类似的方式存储下三角的元素,即当您沿对角线向下移动时,行索引增加 1,列索引减少 1。
下面是上述方法的实现:
C++
// C++ program to print the required pattern
#include
using namespace std;
// Function to print the required pattern
void printPattern(int n)
{
// arr[][] will store the pattern matrix
int arr[n][n], k, i, j, p = 1, f;
// Store the values for upper triangle
// of the pattern
for (k = 0; k < n; k++) {
j = k;
i = 0;
while (j >= 0) {
arr[i][j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Store the values for lower triangle
// of the pattern
for (k = 1; k < n; k++) {
i = k;
j = n - 1;
f = k;
while (j >= f) {
arr[i][j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Print the pattern
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
// Driver code
int main()
{
int n = 3;
printPattern(n);
return 0;
}
Java
// Java program to print the required pattern
public class GFG{
// Function to print the required pattern
static void printPattern(int n)
{
// arr[][] will store the pattern matrix
int arr[][] = new int[n][n] ;
int k, i, j, p = 1, f ;
// Store the values for upper triangle
// of the pattern
for (k = 0; k < n; k++) {
j = k;
i = 0;
while (j >= 0) {
arr[i][j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Store the values for lower triangle
// of the pattern
for (k = 1; k < n; k++) {
i = k;
j = n - 1;
f = k;
while (j >= f) {
arr[i][j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Print the pattern
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.print(arr[i][j] + " ") ;
}
System.out.println() ;
}
}
// Driver code
public static void main(String []args)
{
int n = 3;
printPattern(n);
}
// This code is contributed by Ryuga
}
Python3
# Python 3 program to print the
# required pattern
# Function to print the required pattern
def printPattern(n):
# arr[][] will store the pattern matrix
arr = [[0 for i in range(n)]
for j in range(n)]
p = 1
# Store the values for upper
# triangle of the pattern
for k in range(n):
j = k
i = 0
while (j >= 0):
arr[i][j] = p
p += 1
i = i + 1
j = j - 1
# Store the values for lower triangle
# of the pattern
for k in range(1, n, 1):
i = k
j = n - 1
f = k
while (j >= f):
arr[i][j] = p
p += 1
i = i + 1
j = j - 1
# Print the pattern
for i in range(0, n, 1):
for j in range(0, n, 1):
print(arr[i][j], end = " ")
print("\n", end = "")
# Driver code
if __name__ == '__main__':
n = 3
printPattern(n)
# This code is contributed by
# Sanjit_Prasad
C#
// C# program to print the required pattern
using System;
public class GFG{
// Function to print the required pattern
static void printPattern(int n)
{
// arr[][] will store the pattern matrix
int [,]arr = new int[n,n] ;
int k, i, j, p = 1, f ;
// Store the values for upper triangle
// of the pattern
for (k = 0; k < n; k++) {
j = k;
i = 0;
while (j >= 0) {
arr[i,j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Store the values for lower triangle
// of the pattern
for (k = 1; k < n; k++) {
i = k;
j = n - 1;
f = k;
while (j >= f) {
arr[i,j] = p;
p++;
i = i + 1;
j = j - 1;
}
}
// Print the pattern
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr[i,j] + " ") ;
}
Console.WriteLine() ;
}
}
// Driver code
public static void Main()
{
int n = 3;
printPattern(n);
}
// This code is contributed by inder_verma..
}
PHP
= 0)
{
$arr[$i][$j] = $p;
$p++;
$i = $i + 1;
$j = $j - 1;
}
}
// Store the values for lower
// triangle of the pattern
for ($k = 1; $k < $n; $k++)
{
$i = $k;
$j = $n - 1;
$f = $k;
while ($j >= $f)
{
$arr[$i][$j] = $p;
$p++;
$i = $i + 1;
$j = $j - 1;
}
}
// Print the pattern
for ($i = 0; $i < $n; $i++)
{
for ($j = 0; $j < $n; $j++)
{
echo($arr[$i][$j] . " ");
}
echo("\n");
}
}
// Driver code
$n = 3;
printPattern($n);
// This code is contributed
// by Mukul Singh
?>
Javascript
输出:
1 2 4
3 5 7
6 8 9