题目: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 }