對於下面的4×4的矩陣,
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3
對其進行Z字形掃描後得到長度爲16的序列:
1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
請實現一個Z字形掃描的程序,給定一個n×n的矩陣,輸出對這個矩陣進行Z字形掃描的結果。
輸入的第二行到第n+1行每行包含n個正整數,由空格分隔,表示給定的矩陣。
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n][n];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
cin >> a[i][j];
for(int sum=0; sum<2*n-2; sum++)
{
if(sum % 2 == 0)
{
for(int i=sum; i>=0; i--)
if(i >= 0 && i < n && sum-i >= 0 & sum-i < n)
cout << a[i][sum-i] << " ";
}
else
{
for(int i=0; i<=sum; i++)
if(i >= 0 && i < n && sum-i >= 0 & sum-i < n)
cout << a[i][sum-i] << " ";
}
}
cout << a[n-1][n-1];
return 0;
}