那一天我二十一岁,在我一生的黄金时代,我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。-----《黄金时代》
今天一天很颓废呀~追了两集电视剧~看了一集综艺~时间就不知不觉溜走了~在我的黄金时代我发现自己还挺空虚的呵呵呵~
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int matrix[550][550];
int result[300000];
int main()
{
int n;
scanf("%d", &n);
memset(matrix, 0, sizeof(matrix));
memset(result, 0, sizeof(result));
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
scanf("%d", &matrix[i][j]);
int bex = 0, eny = 0, cnt = 0;
result[cnt] = matrix[bex][eny];
for(int i=0; i<n-2; i++)
{
int flag = 0;
if(!bex)
{result[++cnt] = matrix[bex][++eny];flag = 1;
if(bex==n||eny==n)break;
}
cout << bex << " " << eny << endl;
while(flag&&eny)
{
result[++cnt] = matrix[++bex][--eny];
cout << bex << " " << eny << endl;
if(bex==n||eny==n)break;
}
if(!eny)
{
result[++cnt] = matrix[++bex][eny];
flag = 0;
cout << bex << " " << eny << endl;
if(bex==n||eny==n)break;
}
while((!flag)&&bex)
{
result[++cnt] = matrix[--bex][++eny];
cout << bex << " " << eny << endl;
if(bex==n||eny==n)break;
}
cout << bex << " " << eny << endl;
}
bex == 0? --eny:--bex;
cout << bex << " " << eny << endl;
// 3 0
cnt--;
for(int i=0; i<n-2; i++)
{
int flag = 0;
if(eny==n-1)
{
result[++cnt] = matrix[++bex][eny];
flag = 1;
if(bex==n||eny==n)break;
}
while(flag&&(bex!=n-1))
{
result[++cnt] = matrix[++bex][--eny];
if(bex==n||eny==n)break;
}
if(bex==n-1)
{
result[++cnt] = matrix[bex][++eny];
flag = 0;
if(bex==n||eny==n)break;
}
while((!flag)&&(eny!=n-1))
{
result[++cnt] = matrix[--bex][++eny];
if(bex==n||eny==n)break;
}
}
for(int i=0; i<n*n-1; i++)
cout << result[i] << " " ;
cout <<result[n*n-1] << endl;
// }
return 0;
}
90分,因为n=2和n=3的例子没过。立个flag,明早起来继续改~谁不改谁是猪
好了好了,虽然不会改,但是我现在找到了个好方法哈哈,不要受图上画的箭头路线的误导,其实最应该关注的是奇偶的问题。
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int matrix[550][550];
int main()
{
int n;
scanf("%d", &n);
memset(matrix, 0, sizeof(matrix));
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
scanf("%d", &matrix[i][j]);
for(int i=0; i<n; i++)
{
if(!(i%2))//i为偶数
{
for(int j=0; j<=i; j++)
cout << matrix[i-j][j] << " ";
}
else
for(int j=0; j<=i; j++)
cout << matrix[j][i-j] << " ";
}
for(int i=n; i<=(2*n-2); i++)
{
if(!(i%2))
{
for(int j=i-n+1; j<n; j++)
cout << matrix[i-j][j] << " ";
}
else
for(int j=i-n+1; j<n; j++)
cout << matrix[j][i-j] << " ";
}
cout << endl;
return 0;
}
********************************************************************************************
(0,0)(0,1)(0,2)(0,3)(0,4)
(1,0)(1,1)(1,2)(1,3)(1,4)
(2,0)(2,1)(2,2)(2,3)(2,4)
(3,0)(3,1)(3,2)(3,3)(3,4)
(4,0)(4,1)(4,2)(4,3)(4,4)