刷题的时候遇到了托普利兹矩阵,题目大概如下:
输入
3
输出
1 2 3
2 1 2
3 2 1
我写的代码如下,但是1的右上边的数字是反了的。公式实在推不出来,请大家帮助一下我~
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int matrix[105][105];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
matrix[i][j] = (i + j) % n + 1;
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << matrix[(i - j + n) % n][0] << " ";
}
cout << endl;
}
return 0;
}