📌  相关文章
📜  Java程序生成二次对角线之和等于完美平方的矩阵

📅  最后修改于: 2022-05-13 01:55:06.456000             🧑  作者: Mango

Java程序生成二次对角线之和等于完美平方的矩阵

给定一个整数N ,任务是使用[1, N]范围内的正整数生成一个维度为N x N的矩阵,使得次对角线的和是一个完美的正方形。

例子:

方法:由于生成的矩阵需要具有N x N的维度,因此,为了使辅助对角线中的元素之和成为一个完美的正方形,我们的想法是在辅助对角线的每个索引处分配N。因此,这条对角线上的所有N个元素之和为N 2 ,这是一个完美的正方形。请按照以下步骤解决问题:

  1. 初始化维度为N x N的矩阵mat[][]
  2. 将矩阵的第一行初始化为 {1 2 3 ... N}。
  3. 现在对于矩阵的其余行,通过将矩阵的前一行的排列循环左移1来填充每一行。
  4. 完成上述步骤后打印矩阵。

下面是上述方法的实现:

Java
// Java program for the above approach
class GFG {
  
    // Function to print the matrix whose sum
    // of element in secondary diagonal is a
    // perfect square
    static void diagonalSumPerfectSquare(int[] arr, 
                                         int N)
    {
  
        // Iterate for next N - 1 rows
        for (int i = 0; i < N; i++)
        {
  
            // Print the current row after
            // the left shift
            for (int j = 0; j < N; j++)
            {
                System.out.print(arr[(j + i) % 7] + " ");
            }
            System.out.println();
        }
    }
  
    // Driver Code
    public static void main(String[] srgs)
    {
  
        // Given N
        int N = 7;
  
        int[] arr = new int[N];
  
        // Fill the array with elements
        // ranging from 1 to N
        for (int i = 0; i < N; i++)
        {
            arr[i] = i + 1;
        }
  
        // Function Call
        diagonalSumPerfectSquare(arr, N);
    }
}
  
// This code is contributed by Amit Katiyar


输出
1 2 3 4 5 6 7 
2 3 4 5 6 7 1 
3 4 5 6 7 1 2 
4 5 6 7 1 2 3 
5 6 7 1 2 3 4 
6 7 1 2 3 4 5 
7 1 2 3 4 5 6 

时间复杂度: O(N 2 )
辅助空间: O(N)

有关详细信息,请参阅有关生成具有二次对角线之和等于完美平方的矩阵的完整文章!