ACM_蛇形矩阵
Posted 霜雪千年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM_蛇形矩阵相关的知识,希望对你有一定的参考价值。
蛇行矩阵
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
解题思路:找规律题,先打表,再直接输出。
举个栗子:当n=3时,矩阵坐标如下:
(0,0),(0,1),(0,2)
(1,0),(1,1)
(2,0)
通过上面的举例,我们可以发现,同一颜色从左往右看,横坐标是降序,纵坐标是升序,结合样例可知,给其一个计数器,从行开始,依次遍历,公式为snake[i-j][j]=num++,水过。
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int n,num=1,snake[101][101]; 6 memset(snake,0,sizeof(snake)); 7 for(int i=0;i<101;++i) 8 for(int j=0;j<=i;++j) 9 snake[i-j][j]=num++; 10 while(cin>>n){ 11 for(int i=0;i<n;++i){ 12 for(int j=0;j<n-i;++j){ 13 cout<<snake[i][j]; 14 if(j!=n-i-1)cout<<‘ ‘; 15 else cout<<endl; 16 } 17 } 18 } 19 return 0; 20 }
以上是关于ACM_蛇形矩阵的主要内容,如果未能解决你的问题,请参考以下文章