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 }

原文地址:https://www.cnblogs.com/acgoto/p/9028500.html

时间: 2024-10-12 12:31:45

ACM_蛇形矩阵的相关文章

蛇形矩阵

如上图所示,是一个4*4的蛇形矩阵 算法思路 由图可观察到该矩阵可分为上三角和下三角.每个三角要根据蛇形的奇偶行进行计数. 算法代码 #include <stdio.h> int main() { int a[10][10]; int n; printf("Input n:"); scanf("%d",&n); int i=0,j=0,k=0; int count=1; for(i=0;i<n;i++)/*上三角 i代表是蛇形的奇偶行*/

随便写的蛇形矩阵

[问题描述] 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. [要求] [数据输入]本题有多组数据,每组数据由一个正整数N组成.(N不大于100) [数据输出]对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. [样例输入] 5 [样例输出] 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 /*作者:Yosha*/ #include "stdio.h" int main() {

(水题)蛇形矩阵

1160 蛇形矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 输入描述 Input Description n(即n行n列) 输出描述 Output Description n+1行,n行为组成的矩阵,最后一行为

Java编码 蛇形矩阵的构建与遍历输出

一.蛇形矩阵的构建,并按行输出 例: 输入:n, 生成n*n的蛇形矩阵 1 2 3 8 9 4 7 6 5 输出:1 2 3 8 9 4 7 6 5 java编码 public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int n = in.nextInt(); if(n < 0) return; if(n == 1){ Sys

蛇形矩阵与螺旋矩阵

自己写的蛇形矩阵:(蛇形矩阵就是在NXN矩阵格子上从左上到右下以"之"字型增加或减少,像蛇盘绕着的形状.本程序从左上开始盘旋一直到右下达到最大值) #include <iostream> using namespace std; #define n 10//输入要更改的矩阵大小 void main() { int a[n][n]={0},k=1,j=0,i=0,s1[4]={0,1,2,3},t1[4]={1,1,2,2},m=0; for (int t=1;t<=n

1010: 蛇形矩阵

Description 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. Input 本题有多组数据,每组数据由一个正整数N组成.(N不大于100) Output 对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. Sample Input 5 Sample Output 1 3 6 10 152 5 9 144 8 137 1211 <pre name="code" class="cp

华为OJ——蛇形矩阵

题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult(int Num, char * pResult); 输入参数: int Num:输入的正整数N 输出参数: int * pResult:指向存放蛇形矩阵的字符串指针 指针指向的内存区域保证有效 返回值: void 输入描述: 输入正整数N(N不大于100) 输出描述: 输出一个N

第3章第1节练习题1 蛇形矩阵

问题描述 蛇形矩阵即使用二维数组完成来回曲折的赋值,举例说明如下所示的形式即为蛇形数组. 算法思想 观察该二维数组,只是可以"人为"的发现它就像一条蛇的形状来回爬行,然而并没有什么卵用,不能明确的站在计算机的角度上来实现这个数组.于是将所有的下标列出来便可以得到下述所述的曲线走势. 然后结合第一张图便可以发现 数字从2~3的过程中,下标行变化范围是0~1:下标列范围是1~0: 数字从4~6的过程中,下标行变化范围是2~0:下标列范围是0~2: 数字从7~10的过程中,下标行变化范围是0

ACM编程比赛入门题目之蛇形矩阵

蛇行矩阵 [问题描述] 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. [要求] [数据输入]本题有多组数据,每组数据由一个正整数N组成.(N不大于100) [数据输出]对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. [样例输入] 5 [样例输出] 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 代码: #include <iostream> using namespace std