程序3-3 蛇形填数_蛇形填数 在n×n方阵里填入1,2,…,n×n,要求填成蛇形。例如,n=4时方阵为: 1 2 3 4-程序员宅基地

技术标签: 算法竞赛入门经典  

蛇形填数。在n*n方阵里填入1,2,...,n*n,要求填成蛇形,输入为一个整数n,输出为一个方阵。例如n=4时方阵为:


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

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define maxn 8
int a[maxn][maxn];
int main()
{
    int n,x,y,sum=0;
    cin>>n;
    memset(a,0,sizeof(a));
    sum=a[x=0][y=n-1]=1;
    while(sum<n*n)
    {
        while(x+1<n&&!a[x+1][y])
        {
            a[++x][y]=++sum;
        }
        while(y-1>=0&&!a[x][y-1])
        {
            a[x][--y]=++sum;
        }
        while(x-1>=0&&!a[x-1][y])
        {
            a[--x][y]=++sum;
        }
        while(y+1<n&&!a[x][y+1])
        {
            a[x][++y]=++sum;
        }
    }
    for(x=0;x<n;x++){
        for(y=0;y<n;y++){
            printf("%3d",a[x][y]);
        }
        printf("\n");
    }
    return 0;
}


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44954571/article/details/103979045

智能推荐

使用qrcodejs2插件生成支付二维码_qrcodejs2生成的二维码有支付时间吗-程序员宅基地

文章浏览阅读872次。·需求:后端给二维码内容链接,前端把链接转为二维码,二维码超时可点击按钮刷新二维码·html<template> <div class="wechat"> <div ref="qrCode" v-loading="loading" class="qrCode"></div> <p>请使用微信扫描二维码支付,请在5分钟内完成支付,过期请刷新支付码</p> <el-button @click="ref_qrcodejs2生成的二维码有支付时间吗

博弈论与最优化的关系-程序员宅基地

文章浏览阅读4.2k次,点赞6次,收藏16次。kalveh:一直搞不太清楚,博弈过程中是不是一定要有最优化?个人感觉,最优化过程中通常只需要把约束条件描述清楚,把目标函数定义好,就可以进行求解;而博弈过程中,则需要了解对方可能采取的策略,再和己方的策略进行组合,从中选择最符合己方利益的策略,也就是所谓的占优策略。这种方法在博弈的参与方确定(最好再假定其可以采取的策略也已知)的情况下,比较容易应用,也好理解;但是在参与方很多,以致..._博弈优化

Golang 和 lua 相遇会擦出什么火花?_golang结合lua-程序员宅基地

文章浏览阅读955次。在 GitHub 玩耍时,偶然发现了 gopher-lua ,这是一个纯 Golang 实现的 Lua 虚拟机。我们知道 Golang 是静态语言,而 Lua 是动态语言,Golang 的性能和效率各语言中表现得非常不错,但在动态能力上,肯定是无法与 Lua 相比。那么如果我们能够将二者结合起来,就能综合二者各自的长处了(手动滑稽。在项目 Wiki 中,我们可以知道 gopher-lua 的执行效率和性能仅比 C 实现的 bindings 差。因此从性能方面考虑,这应该是一款非常不错的虚拟机方案。Hel_golang结合lua

雪球产品定价-蒙特卡罗模拟法_小雪球 估值 python-程序员宅基地

文章浏览阅读3.4k次。蒙特卡洛模拟法实现雪球产品定价_小雪球 估值 python

在VC中WININET使用HTTP的POSTA和GET方法_wincc post-程序员宅基地

文章浏览阅读1.1k次。原文:http://blog.csdn.net/zeng622peng/article/details/5969059Post资料:SUMMARYTo properly simulate a Form submission using WinInet, you need to send a header that indicates the proper Content_wincc post

Windows中启动rabbitmq主机名报错_mq启动的时候为什么事主机名sc-201809171409-程序员宅基地

文章浏览阅读1.2k次。记录一个被自己坑死的问题,,计算机名。。哥哥们千万不要命名为中文,,,会把自己坑死的,还不知道咋死的。今天在Windows安装rabbitMQ的时候,好像一切正常的样子。启动的时候,一直启动不了。emmm,报错:ERROR: epmd error for host neighbours:: nxdomain (non-existing domain)第一眼一看,这不是主机名有问题嘛,然后马上..._mq启动的时候为什么事主机名sc-201809171409

随便推点

php取get数据存,储到相应的txt文档内_php网址请求返回全部保存txt文本-程序员宅基地

文章浏览阅读654次。php获取get过来的数据,根据|符号进行分割,取|前的字符,创建txt文件,txt文件存储的内容为|后面的字符;当请求次url后,则会在data文件内新建一个aa.txt文件,内容为123456---789。如一行的红色a+修改为r,则代表覆盖,例如下。txt内容采用追加模式。具体php代码如下;_php网址请求返回全部保存txt文本

MySQL主从复制(2)——一主多从架构的搭建_mysql distribute by replication-程序员宅基地

文章浏览阅读423次,点赞2次,收藏2次。MySQL主从复制(2)——一主多从架构的搭建步骤MySQL主从复制的工作原理如下:(1)Mysql服务器之间的主从复制是基于二进制日志,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。(2)在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类事件(插入数据、更新数据、删除数据),默认会执行日志中的所有语句。(3)每一个从服务器会记录关于二进制日志的信息(文件名和已经_mysql distribute by replication

第三周项目2-建设“顺序表”算法库_建立建立顺序表运算的算法库。算法库包括两个文件:头文件:list.h,包含定义顺序表-程序员宅基地

文章浏览阅读634次。/* *烟台大学计控学院 *作 者:张雯婧 *完成日期:2015年9月12日*问题描述:本文为算法库中的第一个,针对线性表中的顺序存储结构,实现各种基本运算。   算法库包括两个文件:    头文件:list.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;    源文件:list.cpp,包含实现各种算法的函数的定义 */1._建立建立顺序表运算的算法库。算法库包括两个文件:头文件:list.h,包含定义顺序表

Lombok插件使用与安装_lombok插件安装-程序员宅基地

文章浏览阅读206次。开发过程中经常会写一些常用的类(这里不是JavaBean,JavaBean除了私有变量,公有的set/get方法外,还应该有无参构造函数),有些代码过于冗余,Lombok插件就是为了简化冗余和样板式代码存在的。例如,一个继承类中的几个私有变量需要写公有的set/get方法以及重写toString方法,这种写法中有较多的冗余,采用Lombok中的@Data注解可以省略Get、Set、toStri..._lombok插件安装

ubuntu下SNMP服务的配置_ubuntu关闭snmp-程序员宅基地

文章浏览阅读1k次。背景:机房新增了几台ubuntu服务器,需要用已有的cacti来监测它们,所以要在新服务器上安装和配置SNMP协议。动机:我参考网上很多资料安装和配置SNMP,没搞定,于是自己研究了一下如何配置,最终顺利完成,所以分享一下。1. SNMP安装运行如下两个命令apt-get install snmp [enter]apt-get install snmpd [enter]_ubuntu关闭snmp

AI边缘计算模组 算丰SM5移植 边缘计算设备开始移植 比特大陆SM5模组移植 AI边缘计算模组应用-程序员宅基地

文章浏览阅读1.5k次。最近项目开发涉及了一些AI算法移植到边缘计算盒子上,调研了寒武纪MLU220、比特大陆SM5和华为310的模组,对相关的资料进行整理工作,理论上来说比特大陆SM5的移植还算比较友好一些。_算丰sm5