GDUFE ACM-1018

题目:http://acm.gdufe.edu.cn/Problem/read/id/1018

蛇行矩阵

Time Limit: 4000/2000ms (Java/Others)

Problem Description:

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

Input:

本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

Output:

对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

Sample Input:

5

Sample Output:

1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

思路:找出一行中数列的规律,再找出第一列的规律,然后计算并输出……看到大家都用二维数组了,然而我的第一反应还是找规律==

难度:还是比较简单的

代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,k,c,d,b,i,n,j;
 5     while(scanf("%d",&n)!=EOF)
 6     {
 7         c=n;a=1;d=0;b=1;
 8         for(i=0;i<n;i++)
 9         {
10             a=a+d;
11             d=d+1;
12             printf("%d",a);
13             k=d+1;
14             b=a;
15             for(j=1;j<c;j++)
16             {
17                 b=b+k;
18                 k++;
19                 printf(" %d",b);
20             }
21             printf("
");
22             c--;
23         }
24     }
25     return 0;
26 }
原文地址:https://www.cnblogs.com/ruo786828164/p/6005151.html