NOIP 2015

Day1

T1 P2615 [NOIP2015 提高组] 神奇的幻方

解题方法在题面里都告诉了,模拟就完事。

#include<iostream>
using namespace std;
const int mm=40;
int m[mm][mm];
int i,j,n,k;
int main()
{
    cin>>n;
    for(i=0; i<=n+1; i++)
    {
        for(j=0; j<=n+1; j++)
        {
            if(i>0&&i<=n&&j>0&&j<=n)
                m[i][j]==0;
            else
                m[i][j]==1;
        }
    }
    m[1][n/2+1]=1;
    i=1;
    j=n/2+1;
    k=2;

    while(k<=n*n)
    {
        if(i==1&&j!=n)
        {
            m[n][j+1]=k;
            i=n;
            j=j+1;
            k++;
            continue;
        }
        else if(i!=1&&j==n)
        {
            m[i-1][1]=k;
            j=1;
            i=i-1;
            k++;
            continue;
        }
        else if(i==1&&j==n)
        {
            m[i+1][j]=k;
            i=i+1;
            k++;
            continue;
        }
        else if(i!=1&&j!=n)
        {
            //cout<<"emm";
            if(m[i-1][j+1]==0)
            {
                m[i-1][j+1]=k;
                i-=1;
                j+=1;
                k++;
                continue;
            }
            else
            {
                m[i+1][j]=k;
                i+=1;
                k++;
                continue;
            }
        }

        /*
        for(i=1; i<=n; i++)
        {
            for(j=1; j<=n; j++)
            {
                cout<<m[i][j];
            }
            cout<<endl;
        }

        cout<<k<<' '<<endl;*/
    }

    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
        {
            cout<<m[i][j]<<' ';
        }
        cout<<endl;
    }

    return 0;
}
View Code

相关文章:

  • 2021-07-15
  • 2021-06-19
  • 2021-10-10
  • 2021-10-10
  • 2021-05-20
  • 2022-02-20
  • 2021-10-15
  • 2021-12-04
猜你喜欢
  • 2021-07-22
  • 2021-07-29
  • 2021-12-31
  • 2021-08-03
相关资源
相似解决方案