蛇形填数

xiaoxiao2021-02-28  12

基本思路:

先存好,再输出;

代码如下:

#include<bits/stdc++.h> using namespace std; int main() {     int n;cin>>n;     int num=1,x=1,y=n,ans[100][100];     memset(ans,0,sizeof(ans));     ans[x][y]=num;     while(num<n*n)//没有等于,否则会造成死循环;     {         while(x+1<=n&&!ans[x+1][y]) ans[++x][y]=++num;         while(y-1>=1&&!ans[x][y-1]) ans[x][--y]=++num;         while(x-1>=1&&!ans[x-1][y]) ans[--x][y]=++num;         while(y+1<=n&&!ans[x][y+1]) ans[x][++y]=++num;     }     for(int i=1;i<=n;i++)     {         for(int j=1;j<=n;j++)             printf("]",ans[i][j]);         printf("\n");     }     return 0; }

转载请注明原文地址: https://www.6miu.com/read-200133.html

最新回复(0)