NYOJ 33 蛇形填数

来源:互联网 发布:行尸走肉网络剧百度云 编辑:程序博客网 时间:2024/05/17 22:06

高中学C语言的时候做过,然后又敲了一遍


时间限制:3000 ms  |  内存限制:65535 KB

难度:3

  • 描述

  • 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
    10 11 12 1
    9 16 13 2
    8 15 14 3
    7 6 5 4

    • 输入

    • 直接输入方陈的维数,即n的值。(n<=100)

    • 输出

    • 输出结果是蛇形方陈。

    • 样例输入

    • 3
    • 样例输出

    • 7 8 16 9 25 4 3


#include <iostream>#include <iomanip>#include <cstring>#include <cmath> using namespace std; int ans[105][105]; int main(){    int n,m,i,j,left,right,up,down;    cin>>n;    m=1;    memset(ans,0,sizeof(ans));    for(i=0;i<n;i++)    {        //向下        for(down=i;down<n-i;down++)            ans[down][n-1-i]=m++;         //向左        down--;        for(left=n-1-i-1;left>=i;left--)            ans[down][left]=m++;         //向上        left++;        for(up=n-1-i-1;up>=i;up--)            ans[up][left]=m++;         //向右        up++;        for(right=i+1;right<n-1-i;right++)            ans[up][right]=m++;     }    cout<<setiosflags(ios::left);    for(i=0;i<n;i++)    {        for(j=0;j<n;j++)            cout<<setw(5)<<ans[i][j];        cout<<endl;    }    return 0;}


1 0
原创粉丝点击