蛇形填数

来源:互联网 发布:ipad能用mac系统 编辑:程序博客网 时间:2024/06/05 07:34
#include<iostream>using namespace std;int a[20][20];int main(){int n,x,y,tot,i,j;cin>>n;tot=a[x=0][y=n-1]=1;//++tot=2,tot++=1;while(tot<n*n){//while中第一个为边界条件,第二个为不能走已走过的路,只有当0也就是还未赋其他值时走 。 while(x+1<n&&a[x+1][y]==0) a[++x][y]=++tot;//!a[x+1][y]相当于a[x+1][y]==0 while(y-1>=0&&a[x][y-1]==0) a[x][--y]=++tot;while(x-1>=0&&a[x-1][y]==0) a[--x][y]=++tot;while(y+1<n&&a[x][y+1]==0) a[x][++y]=++tot;}  for(i=0;i<n;i++){for(j=0;j<n;j++){ printf("%3d",a[i][j]); }cout<<endl;}}

原创粉丝点击