zoukankan      html  css  js  c++  java
  • NYOJ33

    描述:
    在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 1
    6 9 2
    5 4 3

    //蛇形填数
    //二维数组构成正方形,依次写入数值
    #include<stdio.h>
    #include<string.h>
    int main(){
        int a[100][100], n, x, y,tot;
        memset(a,0,sizeof(a));
        scanf("%d",&n);
        tot = a[x=0][y=n-1] = 1;
    //写入数据
        while(tot < n*n){
            while(x+1 < n && !a[x+1][y])a[++x][y] = ++tot;
            while(y-1 >= 0 && !a[x][y-1])a[x][--y] = ++tot;
            while(x-1 >= 0 && !a[x-1][y])a[--x][y] = ++tot;
            while(y+1 < n && !a[x][y+1])a[x][++y] =++tot;
        }
    //输出
        for(int i = 0;i < n; i++){
            for(int j =0; j < n; j++){
                printf("%3d ",a[i][j]);
            }
            putchar('
    ');
        }
        return 0;
    }  
  • 相关阅读:
    2017年暑期实习生招聘(百度)——两道编程题
    携程笔试中的一道编程题
    软工假期预习作业1
    假期作业
    FAFU 1557
    HDU 1028
    POJ 3126
    HDU5108
    POJ 1716
    HDU4790
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444998.html
Copyright © 2011-2022 走看看