算法竞赛入门经典程序3-3

#include <iostream>

#include <stdio.h>

using namespace std;

//const int max=8;

int a[8][8];

int main()

{

    //输入数字n

    int n;

    cin>>n;

    int x=0,y=n-1;

     //判断边界条件,并为a[1][n-1]赋值

    a[x][y]=1;

    int num=1;

    while (num<n*n) //将最外面的数字输入完毕后 在输内部的值

    {

        while (x<n-1 && !a[x+1][y]) { a[++x][y]=++num; }

        while (y>0 && !a[x][y-1]) { a[x][--y]=++num; }

        while (x>0 && !a[x-1][y]) { a[--x][y]=++num; }

        while (y<n-1 && !a[x][y+1]) { a[x][++y]=++num; }

    }

   

    

    for (int i=0; i<n; i++)

    {for (int j=0; j<n; j++)

            //

    {   //cout<<a[i][j];

        printf("%3d",a[i][j]);

    }

            //printf(" ");

        cout<<" "<<endl;

    }

    

    return 0;

    

}

原文地址:https://www.cnblogs.com/bowiehsu/p/4108155.html