• 华为机试-蛇形矩阵


    题目描述
    题目说明
    蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。



    样例输入
    5
    样例输出
    1 3 6 10 15
    2 5 9 14
    4 8 13
    7 12
    11
    接口说明
    原型
    void GetResult(int Num, char * pResult);
    输入参数:
    int Num:输入的正整数N
    输出参数:
    int * pResult:指向存放蛇形矩阵的字符串指针
    指针指向的内存区域保证有效
    返回值:
    void


    输入描述:
    输入正整数N(N不大于100)
    输出描述:
    输出一个N行的蛇形矩阵。
    示例1
    输入

    4
    输出

    1 3 6 10
    2 5 9
    4 8
    7

    java实现代码

    1. import java.util.Scanner;  
    2.   
    3. /** 
    4.  * 题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 
    5.  */  
    6. public class Main {  
    7.     public static void main(String[] args) {  
    8.         Scanner scanner = new Scanner(System.in);  
    9.         while (scanner.hasNext()) {  
    10.             int num = scanner.nextInt();  
    11.             String[] strings = new String[num];  
    12.             for (int i = 0; i < strings.length; i++) {  
    13.                 strings[i] = "";  
    14.             }  
    15.             GetResult(num, strings);  
    16.   
    17.             for (int i = 0; i < strings.length; i++) {  
    18.                 System.out.println(strings[i]);  
    19.             }  
    20.   
    21.         }  
    22.   
    23.     }  
    24.   
    25.     private static void GetResult(int num, String[] strings) {  
    26.   
    27.         int startNum = 1;  
    28.         int startLeft = 1;  
    29.         int add = 2;  
    30.         int end = num;  
    31.         int currentAdd = 2;  
    32.         int hangAdd = 1;  
    33.         for (int i = 0; i < num; i++) {  
    34.             currentAdd = i + 2;  
    35.             startNum = startLeft;  
    36.             for (int j = 0; j < end; j++) {  
    37.                 if (j != end - 1) {  
    38.                     strings[i] += startNum + " ";  
    39.                 } else {  
    40.                     strings[i] += startNum;  
    41.                 }  
    42.   
    43.                 startNum += currentAdd;  
    44.                 currentAdd++;  
    45.             }  
    46.             startLeft += hangAdd;  
    47.             hangAdd++;  
    48.             end--;  
    49.         }  
    50.     }  
    51.   
    52. }  
  • 相关阅读:
    Quora的技术探索
    基于移动互联网的电子商务个性化推荐的一些思考
    想个法子找出性能差的SQL
    结束——2012年微软精英挑战赛
    sql 查询时间执行长的sql语句
    NET好书盘点
    最后两个编程题
    网络七层协议
    使用WCF创建Restful服务
    一步一步学Entity FrameWork 4
  • 原文地址:https://www.cnblogs.com/wwjldm/p/7218474.html
Copyright © 2020-2023  润新知