华为机试-蛇形矩阵
题目描述
题目说明
蛇形矩阵是由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实现代码
- import java.util.Scanner;
- /**
- * 题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
- */
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNext()) {
- int num = scanner.nextInt();
- String[] strings = new String[num];
- for (int i = 0; i < strings.length; i++) {
- strings[i] = "";
- }
- GetResult(num, strings);
- for (int i = 0; i < strings.length; i++) {
- System.out.println(strings[i]);
- }
- }
- }
- private static void GetResult(int num, String[] strings) {
- int startNum = 1;
- int startLeft = 1;
- int add = 2;
- int end = num;
- int currentAdd = 2;
- int hangAdd = 1;
- for (int i = 0; i < num; i++) {
- currentAdd = i + 2;
- startNum = startLeft;
- for (int j = 0; j < end; j++) {
- if (j != end - 1) {
- strings[i] += startNum + " ";
- } else {
- strings[i] += startNum;
- }
- startNum += currentAdd;
- currentAdd++;
- }
- startLeft += hangAdd;
- hangAdd++;
- end--;
- }
- }
- }
posted on 2017-07-21 16:39 WenjieWangFlyToWorld 阅读(368) 评论(0) 编辑 收藏 举报