`
小菌子
  • 浏览: 22082 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

[Problem] 蛇行矩阵

阅读更多
/*
 * 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
*/
public class SnakeMatrix {

    private int n = 0;
    
    private int snakeMatrix[][] = new int[n][n];
    
    /*
     * 构造函数,用于初始化要打印的N行,以及根据N值初始化蛇形数组。
     */
    public SnakeMatrix(int n)
    {
        this.n = n;
        this.snakeMatrix = new int[this.n][this.n];
        this.iniSnakeMatrix();
    }
    
    /*
     * 按照规律初始化蛇形数组
     */
    private int[][] iniSnakeMatrix()
    {
        for(int i = 0; i < this.n; i++)
        {
            for(int j = 0; j < this.n - i; j++)
            {
                if ( i == 0)
                {
                    snakeMatrix[i][j] = ((j + 1) * (j + 2))/2;//第一行的规律是(n+1)*(n+2)/2
                }
                else
                {
                    snakeMatrix[i][j] = snakeMatrix[i - 1][j+1] - 1;//后面的行中数字等于上一行左移1位后再减1
                }
            }
        }
        
        return snakeMatrix;
    }
    
    /*
     * 打印输出蛇形数组,各数字使用空格分离,并且每行的行尾没有多余的空格
     */
    public void printSnakeMatrix()
    {
        String tmp = null;
        for (int i = 0; i < snakeMatrix.length; i++)
        {
            for (int j = 0; j < snakeMatrix[i].length; j++)
            {
                tmp = ((j != snakeMatrix.length -i -1) ? " " : "");//行中加空格,行尾不要多余的空格
                if (snakeMatrix[i][j] != 0)//去掉数组中的0,即清零
                {
                    System.out.print(snakeMatrix[i][j] + tmp);
                }
            }
            System.out.print("\n");//打完一行后,输出换行符
        }
        
        return;
    }
    
    /*
     * 返回蛇形数组
     */
    public int[][] getSnakeMatrix()
    {
        return this.snakeMatrix;
    }
}
分享到:
评论

相关推荐

    C#,蛇梯问题(Snake and Ladder Problem)的算法与源代码

    C#,蛇梯问题(Snake and Ladder Problem)的算法与源代码 蛇梯问题 Snake and Ladder Problem 给定一个蛇梯板,找出从源单元格或第一个单元格到达目标单元格或最后一个单元格所需的最小掷骰次数。基本上,玩家可以...

    Computer-Based.Problem.Solving.Process

    Title: Computer-Based Problem Solving Process Author: Teodor Rus Length: 350 pages Edition: 1 Language: English Publisher: World Scientific Publishing Company Publication Date: 2015-05-30 ISBN-10: ...

    problem3的副本.f90_matrix_矩阵乘法_

    标题中的"problem3的副本.f90_matrix_矩阵乘法_"表明这是一个Fortran编程练习,涉及到矩阵乘法的实现。描述中提到的“用三种方法计算矩阵乘法并且验证三种方法所用的时间”意味着我们将探讨三种不同的算法,并通过...

    Problem Solving with C++, 10th Global Edition

    Problem Solving with C++, Global Edition by Walter Savitch (author) (Author) Pages:1117 出版社: Pearson Education Limited; 10th edition edition (November 20, 2017) Language: English ISBN-10: ...

    Wicked Problem

    ### Wicked Problem与Wicked Environmental Problem #### 一、引言 "Wicked Problem"(棘手问题)这一概念最初由霍恩(Horst Rittel)和韦伯(Melvin Webber)于1973年提出,指的是那些复杂且难以解决的问题。这类...

    node-problem-detector-0.8.7.tar

    node-problem-detector 镜像包 v0.8.7 版本

    MCM 2012 problem A B C 论文

    MCM 2012年 problem A problem B problem C 枪手论文

    Problem Arrangement zoj 3777

    Problem Arrangement zoj 3777

    Problem Solving with C++(9th) 无水印pdf

    Problem Solving with C++(9th) 英文无水印pdf 第9版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...

    算法设计taxi problem

    算法设计里关于taxi problem的C语言代码

    《Approaching (Almost) Any Machine Learning Problem》

    Approaching (Almost) Any Machine Learning Problem是一本旨在帮助读者掌握机器学习问题解决方法的书籍。这本书涵盖了机器学习的基本概念、模型选择、数据预处理、特征工程、模型评估等多方面的知识点。 机器学习...

    Problem_C_Data.zip

    "Problem_C_Data.zip" 是一个压缩包文件,包含2020年美国数学建模竞赛(简称美赛)C题的题目及相应的原始数据。美赛是一项国际性的数学建模竞赛,每年吸引众多学生参与,旨在提升参赛者的数学、数据分析和解决实际...

    THE CP-MATRIX APPROXIMATION PROBLEM

    【CP-矩阵近似问题】 完全正(CP)矩阵是指存在一个元素非负的矩阵V,使得矩阵A可以通过V的转置与自身的乘积来表示,即A = VV^T。本文关注的是CP-矩阵近似问题,该问题是将一个矩阵投影到线性约束集与CP矩阵锥的...

    Problem 1002

    HDOJ Problem 1001 C++版

    flow shop problem GA算法

    flow shop problem GA算法 详细代码标注

    Problem_C_Data.rar

    hair_dryer.tsv微波.tsv pacifier.tsv数据集定义:每行代表划分为以下各列的数据。 ● marketplace (string): 2 letter country code of the marketplace where the review was written. ●市场(字符串):撰写...

    Algorithmic Problem Solving

    Algorithmic Problem Solving By 作者: Roland Backhouse ISBN-10 书号: 0470684534 ISBN-13 书号: 9780470684535 Edition 版本: 1 出版日期: 2011-10-24 pages 页数: 432 An entertaining and captivating way to ...

    A+Bproblem完整代码

    下载超过3次或对应题解文章点赞超过1个便开放免费下载!

    problem-spring-web, 在 spring Web MVC中,处理问题的库.zip

    problem-spring-web, 在 spring Web MVC中,处理问题的库 Web站点MVC问题 问题 spring 是一个库,它使得从 spring 应用程序中生成 application/problem json 响应变得容易。 工具填补了一个利基,它将问题库和mvc...

Global site tag (gtag.js) - Google Analytics