输入格式
输入一行,包含一个整数n(n<=100)
输出格式
输出n行,每行包含n个正整数
输入 #1
4
输出 #1
1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
这题目乍一看无从下手,但是仔细看一会就能发现端倪。根据蛇的轨迹我们可以进行模拟,在每一次蛇到达n时,就进行转头(即i到达n,向右上转头;j到达n,向左下转头);
接下来上代码。
#include <bits/stdc++.h>
using namespace std;
int s[105][105];
int main(){
memset(s,0,sizeof s);
int n;
cin>>n;
int k=1;
int cnt=1;
int i=1;
int j=1;
while(cnt!=n*n){
if(k%2==1){
s[i][j]=cnt++;
if(j==n){
i++;
k++;
}else if(i==1){
j++;
k++;
}else{
i--;
j++;
}
}else{