C++程序 生成一个次对角线元素和为完全平方数的矩阵

C++程序 生成一个次对角线元素和为完全平方数的矩阵

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

例子:

输入: N = 3

输出:

1 2 3

2 3 1

3 2 1

解释:

次对角线的和= 3 + 3 + 3 = 9(=3 2 )。

输入: N = 7

输出:

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

解释:

次对角线的和= 7 + 7 + 7 + 7 + 7 + 7 + 7 = 49(=7 2 )。

方法: 由于生成的矩阵需要达到 N x N 的维度,因此,为使次对角线元素之和为完全平方数,将 N 指定为次对角线的每个索引。 因此,该对角线的所有 N 个元素之和为 **N 2 ** ,这是一个完全平方数。 按照以下步骤解决问题:

  1. 初始化矩阵 mat [][] 的尺寸为 N x N
  2. 将矩阵的第一行初始化为{1 2 3 … N}。
  3. 对于矩阵的剩余行,请使用前一行的矩阵的布局进行循环左移 1
  4. 完成上述步骤后,打印矩阵。

以下是上述方法的实现:

//以上是C ++程序剪切
#include
使用命名空间std;
  
//函数打印矩阵,其次对角线上的所有元素的和都是完全平方数
void diagonalSumPerfectSquare(int arr [],int N)
{
      
    //循环处理N - 1个行
    for(int i = 0; i 




**输出**

```cpp
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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例