最近在写一些蓝桥杯的真题,前段时间一直在画画太摆了,眼看就要比赛了,先暂时把简单的题熟练吧。C#和Unity相关的笔记过几天发(上周太忙忘记写啦)
看一下这道真题:
题目要求:蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入格式:本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出格式:对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5
样例输出
1 3 6 10 15 2 5 9 14 4 8 13 7 12 11
解法:读题,输入多少行,输出多少行,每一行元素数量以此递减1。
我观察到了这些数字都有特殊的关系。说的可能不是很清楚,可以看图:
代码实现:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 0;
int j = 0;
while (n!=0)
{
cout << (i + 2*j+3) * i / 2 +(j*(j+1)/2+1);
if (i != n)
cout << ' ';
i++;
if (i>=n)
{
j++;
i = 0;
n--;
cout << endl;
}
}
}