zoukankan      html  css  js  c++  java
  • 蛇形填数

    蛇形填数

    时间限制: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 1
    6 9 2
    5 4 3

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int main()
    {
        int matrix[102][102];
        int n;
        scanf("%d",&n);
        memset(matrix,0,sizeof(matrix));
        int y=n-1;
        int x=0;
        int k=1;
        matrix[x][y]=1;
        while(k<n*n)
        {
            while(x+1<n&&matrix[x+1][y]==0) matrix[++x][y]=++k;
            while(y-1>=0&&matrix[x][y-1]==0) matrix[x][--y]=++k;
            while(x-1>=0&&matrix[x-1][y]==0) matrix[--x][y]=++k;
            while(y+1<n&&matrix[x][y+1]==0) matrix[x][++y]=++k;
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n-1;j++)
            {
                printf("%d ",matrix[i][j]);
            }
            printf("%d
    ",matrix[i][n-1]);
        }
        return 0;
    }
    
  • 相关阅读:
    Java的HttpServletRequest
    Java的用户登录计数功能
    JAVA-DATE
    正则表达式
    Java-JDBC(2)
    Java-JDBC(1)
    String类
    java的多态和构造方法
    Java的封装 this关键字 继承
    java抽象类与接口
  • 原文地址:https://www.cnblogs.com/nanfenggu/p/7900155.html
Copyright © 2011-2022 走看看