首先看一下题
描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
例如,当输入5时,应该输出的三角形为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
输入描述:
输入正整数N(N不大于100)
输出描述:
输出一个N行的蛇形矩阵。
示例1
输入:
4输出:
1 3 6 10 2 5 9 4 8 7
一、问题分析
首先读题,仔细看描述中的内容,发现需求是
1.蛇形矩阵是由1开始的自然数一次排列成的一个矩阵上三角形。
2.例如,当输入5时,应该输出的三角形为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
3.输入描述:输入正整数N(N不大于100)
4.输出描述:输出一个N行的蛇形矩阵。
二、解题思路
1.首先我们观察矩阵,发现如果按照1,2,3的顺序数的话,像蛇一样排列,所以叫蛇形矩阵
2.我们寻找规律,发现,(当N=5时)第一行是1,3,6,10,15,
每次增加多1
1+2=3+3=6+4=10+5=15
第二行是1+1=2,5,9,14
2+3=5+4=9+5=14
第三行是2+2=4,8,13
4+4=8+5=14
第四行是4+3=7,12
7+5=12
第五行是7+4=11
3.所以我们可以用两个for循环来输出我们的队列
三、具体步骤
使用的语言是C
#include <stdio.h>
int main() {
int n = 0;
scanf("%d" ,&n);
int c = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i + 1; j++) {
printf("%d ", ((j + c) * (j + c) + j + c) / 2 - c);
}
c++;
printf("\n");
}
return 0;
}