目录
一、S型蛇形填数
二、回形蛇形填数
三、三角形蛇形填数
一、S型蛇形填数
#include<iostream>
#include<iomanip>
using namespace std;
int array[100][100];
int main(){
int i,j,n;
cin>>n;
int x,y;
int num=1;
for(j=0;j<n;j++){
if(j%2==0){
x=0;
y=j;
while(x<n){
array[x][y]=num;
x++;
num++;
}
}
else{
x=n-1;
y=j;
while(x>=0){
array[x][y]=num;
num++;
x--;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<setw(5)<<array[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
二、回形蛇形填数
#include <iostream>
#include <iomanip>
using namespace std;
int a[100][100];
int main(){
int n,count,x,y;
cin>>n;
count = a[x=0][y=n-1] = 1;
while(count<n*n){
while(x+1<n && !a[x+1][y]) a[++x][y]=++count;
while(y-1>=0 &&!a[x][y-1]) a[x][--y]=++count;
while(x-1>=0 &&!a[x-1][y]) a[--x][y]=++count;
while(y+1<n &&!a[x][y+1]) a[x][++y] =++count;
}
for(x=0;x<n;x++){ //输出
for(y=0;y<n;y++){
cout<<setw(5)<<a[x][y];
}
cout<<endl;
}
return 0;
}
三、三角形蛇形填数
#include<iostream>
#include<iomanip>
using namespace std;
int array[100][100];
int main(){
int x,y,num;
int n,i,j;
cin>>n;
num=1;
for(i=0;i<n;i++){
if(i%2==0){
x=i;
y=0;
while(x+1){
array[x][y]=num;
x--;
y++;
num++;
}
}
else{
y=i;
x=0;
while(y+1){
array[x][y]=num;
y--;
x++;
num++;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<setw(5)<<array[i][j]<<' ';
}
cout<<endl;
}
cout<<array[19][19]<<endl;
return 0;
}
|