zoukankan      html  css  js  c++  java
  • 每天OnLineJudge 之 “蛇形矩阵 ”

    Problem
    蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

    Input
    本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

    Output
    对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。

    矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

    Sample Input
    5

    Sample Output
    1 3 6 10 15
    2 5 9 14
    4 8 13
    7 12
    11

    ------------------------------
    我的解法:
    其实质是按某中顺序遍历数组
    观察下面的数据:

    值  位置   组号
    1   00     0
    ----
    2   10     1
    3   01
    ----
    4   20     2
    5   11
    6   02
    ----
    7   30     3
    8   21
    9   12
    10  03
    ----
    11  40     4
    12  31   
    13  22
    14  31
    15  04

    看了这些数据,就应该知道规律了吧

    ---------------------


    /*
    此解答已通过TongJi编译并Accepted
    Result   Memory Time Language Date 
    Accepted 52k    4ms  C++      2006-05-07 19:29:56
    zhouyinhui

    */


    #include<stdio.h>

    #define MAX 110

    int main()
    {
     int n;
     while(scanf("%d",&n) != EOF)
     {
      int arr[MAX][MAX] = {{0}};

      int value = 0;

      int i,a,b;

      for(i=0; i<n; i++)
      {
       for(a=i,b=0; a>=0 && b<=i; a--,b++)
       {
        arr[a][b] = ++value;
       }
      }

      for(a=0; a<n; a++)
      {
       for(int b=0; b<n; b++)
       {
        if(arr[a][b] != 0)
        {
         if(arr[a][b+1] != 0)
         {
          printf("%d ", arr[a][b]);
         }
         else//行尾
         {
          printf("%d", arr[a][b]);
         }
        }
       }
       printf("\n");
      }

     }

     return 0;
    }

  • 相关阅读:
    eslint and stylelint config
    CSS3 animaion 和 transition 比较
    css之px、em、rem
    Three.js 中 相机的常用参数含义
    ES6中函数调用自身需要注意的问题
    MySQL数据库迁移之data目录
    ES6扩展运算符(三点运算符)...的用法
    Vue 组件通信方案
    关于ES6中Promise的应用-顺序合并Promise,并将返回结果以数组的形式输出
    Ubuntu 使用gps
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/393384.html
Copyright © 2011-2022 走看看