关闭

蛇形填数(2)

130人阅读 评论(0) 收藏 举报
分类:

蛇形填数(二)

时间限制:2000 ms  |  内存限制:65535 KB
难度:3
描述
1  2  3  4  5
12 13 14 6
11 15 7
10 8
9
跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开
输入
第一行有一个N,表示N组测试数据
接下来每组数据包括一个数字X,表示三角形的边长,0< X <1000
输出
输出之后填好之后的图
样例输入
2
5
4
样例输出
1  2  3  4  5
12 13 14 6
11 15 7
10 8
9

1  2  3  4
9  10 5
8  6

7

这题不需要思路,手动模拟即可:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#define maxn 1000+10
using namespace std;
int a[maxn][maxn];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(a,0,sizeof(a));
        int n,tot=1,x=0,y=0,m;
        scanf("%d",&n);
        m=n;
        int s=n*(n+1)/2;
        a[0][0]=1;
        while(tot<s)
        {
            while(y<n-1&&!a[x][y+1]) a[x][++y]=++tot;
            while(y>0&&!a[x+1][y-1]) a[++x][--y]=++tot;
            while(x>=0&&!a[x-1][y]) a[--x][y]=++tot;
        }
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                printf("%-2d ",a[i][j]);
            }
            printf("\n");
            m--;
        }
    }
    return 0;
}


0
0
查看评论

nyoj 852 蛇形填数(二)【循环+数组】

蛇形填数(二) 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开 输...
  • dxx_111
  • dxx_111
  • 2015-08-31 16:39
  • 533

C语言 蛇形填数

蛇形填数。在n×n方阵里填入1,2,…,n×n,要求填成蛇形。例如,n=4时方阵为:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4解决此题的一个重要原则就是先判断下一个要填的位置是否满足条件,再填数。不是发现了不能填再退回来。代码如下:#...
  • Artprog
  • Artprog
  • 2017-01-27 13:55
  • 833

acm蛇形填数

描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入直接输入方陈的维数,即n的值。(n 输出输出结果是蛇形方陈。 样例输入 3 样例输出 7 8 1 6 9 2 5 4 3 ...
  • qq_36238595
  • qq_36238595
  • 2016-12-09 13:13
  • 554

Java笔记(例1:蛇形填数) 边走边聊

(2013-7-17) 今天先复习一下昨天的成果,来一道小小的设计题---蛇形填数: 在n*n的方阵中填入1,2,...,n*n;要求填成蛇形。例如n=4时的方阵为: 10  11  12  1   9  16  13  2 &#...
  • wangxiaosu
  • wangxiaosu
  • 2013-07-17 11:38
  • 1785

算法竞赛入门经典 蛇形填数

蛇形填数
  • hoho_12
  • hoho_12
  • 2016-02-18 21:35
  • 862

【经典算法】:蛇形填数,最简单的方法了。。。

问题概述什么是蛇形填数,百度一下即可 解法你能发现这里面的数为1到 n*n; 所以写个循环即可while(count<n*n){ while(x+1<n && !a[x+1][y]) a[++x][y]=++count;//右下 whi...
  • qq_23100787
  • qq_23100787
  • 2015-09-29 16:20
  • 4598

蛇形填数(矩阵)

蛇形填数        在 n x n 方针里填入 1,2,...,n x n,要求填成蛇形。例如:n=4时方阵为: 10 11 12 1 9   16 13 2 8   15 14 3 7...
  • qq_15096707
  • qq_15096707
  • 2015-01-31 17:39
  • 812

C语言蛇形填数

思路就是:右-》下-》左-》上#include<stdio.h> #include<string.h> int a[10][10]; int main() { int i,j, n, num=0; memset(a, 0, sizeof(a)); sc...
  • acmjk
  • acmjk
  • 2015-05-06 22:58
  • 1297

程序3-3 蛇形填数

蛇形填数 在n*n的方阵中填入1,2,3...n*n,要求填成蛇形.例如,n=4时的方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 代码如下: #include #include #define maxn 20 int a[maxn][maxn]...
  • hurmishine
  • hurmishine
  • 2016-03-12 23:39
  • 658

C++蛇形填数

蛇形填数 问题描述: 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:  10 11 12 1   9 16 13 2   8 15 14 3 &#...
  • zhaochengyuan
  • zhaochengyuan
  • 2012-08-10 15:20
  • 2384
    个人资料
    • 访问:50830次
    • 积分:3308
    • 等级:
    • 排名:第12133名
    • 原创:288篇
    • 转载:18篇
    • 译文:0篇
    • 评论:11条
    博客专栏
    最新评论