题目描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5样例输出
1 3 6 10 15 2 5 9 14 4 8 13 7 12 11思路:这种题规律性很强,要找到规律。对于这个蛇形矩阵来说,列之间从1开始,两个数之间相差行数+1,行之间从1开始,两个数之间为行数-1。
#include<iostream> #include <string> using namespace std; int main() { int n; while(cin>>n) { int res = 1;//第一位数为1 for(int i = 1; i <= n; i++)//控制行数 { res += i - 1;//每次加上行数-1为下一行的值 int num = res; cout << res << ' '; for(int j = i + 1; j <= n; j++) { num += j;//每列的值为每次加上行数加1 if(j != n) cout << num << ' '; else cout << num << endl; } } cout << endl; } return 0; }
