当前位置: 首页 > 编程日记 > 正文

【NOIP2015提高组Day1】 神奇的幻方

【问题描述】

  幻方是一种很神奇的 N*N矩阵:它由数字1,2,3, … … ,N*N 构成,且每行、每列及两条对角线上的数字之和都相同。  当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间。  之后,按如下方式从小到大依次填写每个数K(K= 2,3, … ,N*N ):  1. 若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K− 1)所在列 的右一列;  2. 若(K− 1)在最后一列但不在第一行,则将K填在第一列,(K− 1)所在行 的上一行;  3. 若(K− 1)在第一行最后一列,则将K填在(K− 1)的正下方;  4. 若(K− 1)既不在第一行,也不在最后一列,如果(K− 1)的右上方还未填 数,则将K填在(K− 1)的右上方,否则将K填在(K− 1)的正下方 现给定N,请按上述方法构造 N*N 的幻方。   

【输入格式】

 输入文件名为magic.in。  输入文件只有一行,包含一个整数N,即幻方的大小。   

【输出格式】

 输出文件名为magic.out。  输出文件包含N行,每行N个整数,即按上述方法构造出的N*N的幻方。相邻两个整数之间用单个空格隔开。

【题解】

一个水水的搜索。

【代码】

vara:array [0..40,0..40] of longint;n:longint;
procedure print;
vari,j:longint;
beginfor i:=1 to n dobeginfor j:=1 to n dowrite(a[i,j],' ');writeln;end;
end;procedure main(m,x,y:longint);
vari:longint;
beginif m>n*n thenbeginprint;halt;end;if (x=1) and (y<>n) thenbegina[n,y+1]:=m;main(m+1,n,y+1);end elseif (x<>1) and (y=n) thenbegina[x-1,1]:=m;main(m+1,x-1,1);end elseif (x=1) and (y=n) thenbegina[x+1,y]:=m;main(m+1,x+1,y);end elsebeginif a[x-1,y+1]=0 then begin a[x-1,y+1]:=m; main(m+1,x-1,y+1); endelse begin a[x+1,y]:=m; main(m+1,x+1,y); end;end;
end;beginassign(input,'magic.in');assign(output,'magic.out');reset(input);rewrite(output);readln(n);a[1,n div 2+1]:=1;main(2,1,n div 2+1);close(input);close(output);
end.

转载于:https://www.cnblogs.com/zyx-crying/p/9319581.html

相关文章:

40行python开发一个区块链

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 尽管有人认为区块链目前还是个不成熟的解决方案&#xff0c;但它无疑称得上是计算机发展历史上的一个奇迹。但是&#xff0c;到底区块链是什么呢?…

网络实验的背景流

在最近做的网络实验中&#xff0c;发现背景流必须要先于实验流开始&#xff0c;并且要长于实验流的时间&#xff0c;这样才能看出实验流的规律。如果背景流后发于实验流&#xff0c;就会变成竞争模式&#xff0c;实验流就会被抢占或者挤压。转载于:https://www.cnblogs.com/fen…

python捕获异常后处理_python异常捕获处理

一、异常处理 在程序运行过程中&#xff0c;总会遇到各种各样的错误。程序一旦出错就停止运行了&#xff0c;此时就需要捕捉异常&#xff0c;通过捕捉到的异常&#xff0c;我们再去做对应的处理 写一个函数&#xff0c;实现除法运算 def calc(a,b): return a/b print(calc(5,1)…

《JS权威指南学习总结--第十一章子集和扩展》

js子集和扩展&#xff1a;http://www.cnblogs.com/ahthw/p/4298449.html ES6新增let和const关键字&#xff1a;http://www.cnblogs.com/telnetzhang/p/5639949.html JS中 var 和 let 关键字的区别&#xff1a;http://www.w3cfuns.com/notes/21400/891cac0f6bff2d7f25d3084618e8…

最常见的 35 个 Python 面试题及答案

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 作为一个 Python 新手&#xff0c;你必须熟悉基础知识。在本文中我们将讨论一些 Python 面试的基础问题和高级问题以及答案&#xff0c;以帮助你完…

PHP 中日期时间函数 date() 用法总结

[导读] date()是我们常用的一个日期时间函数&#xff0c;下面我来总结一下关于date()函数的各种形式的用法&#xff0c;有需要学习的朋友可参考。格式化日期date() 函数的第一个参数规定了如何格式化日期 时间。它使用字母来表示日期和时间 格式化日期date() 函数的第一个参数规…

mac mysql的安装

mac是重装的系统&#xff0c;很干净&#xff0c;没有xmpp等组合的服务器。 1. 安装mysql server https://dev.mysql.com/downloads/mysql/ 这里是官网地址&#xff0c;选择需要的版本下载&#xff0c;我下载的是第一个dmg的&#xff0c;进入后&#xff0c;会让登陆或注册&#…

windows系统和linux系统可以使用相同的js代码吗_「React 手册 」在 Windows 下使用 React , 你需要注意这些问题...

大家好&#xff0c;本篇内容&#xff0c;我要和大家聊聊使用 Windows 开发 React &#xff0c;你需要注意的一些问题。首先说明下&#xff0c;我不是使用 windows 进行开发&#xff0c;因为其配置开发环境来说不是特别方便&#xff0c;我更喜欢 苹果mac 或者乌班图这样的系统&a…

以太坊:比特币 + 无限可能

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 还记你得刚学编程时&#xff0c;第一次使用“对象”的感觉吗&#xff1f;还记你第一次尝试函数式编程的样子吗&#xff1f;这些编程范式&#xff0…

thinkphp5内置标签

thinkphp5内置标签 知道内置标签怎么用&#xff0c;查手册的时候好查 却功能的时候在里面找着来用 内置标签一览 1 内置标签2 3 变量输出使用普通标签就足够了&#xff0c;但是要完成其他的控制、循环和判断功能&#xff0c;就需要借助模板引擎的标签库4 功能了&#xff0c;系统…

python可视化窗口制作一个摇骰子游戏_使用python制作一个抽奖小游戏——骰子游戏...

1.模拟真实环境掷骰子 从Python标准库中调用模块&#xff1a;random——random中包含以各种方式生成随机数的函数 从random中引用randint这一函数——骰子都是有固定面数 from random import randint **2. **创建Die类**** 骰子属性sides&#xff08;面数&#xff09;默认为6面…

C#拾遗(一、基本类型)

1. C#是一种块结构语言&#xff0c;用花括号{}分块&#xff0c;但是用#region和#endregion来定义可以展开和折叠的代码区域 #region 这是引用区 using System; ...... #endregion 2. C#简单类型都是小写&#xff0c;bool,string类型要区别于Java的写法&#xff1b;float、decim…

我不喜欢Go语言的十个理由

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 Go 语言有多火爆&#xff1f;国外如 Google、AWS、Cloudflare、CoreOS 等&#xff0c;国内如七牛、阿里、知乎等都已经开始大规模使用 Go 语言开发…

写扩展性好的代码:函数

http://blog.jobbole.com/107442/转载于:https://www.cnblogs.com/answercard/p/8862006.html

PHP学习笔记:万能随机字符串生成函数(已经封装好)

做验证码用到的&#xff0c;然后就把这个函数封装起来&#xff0c;使用时候要设置2个参数&#xff1a; $str设置里要被采集的字符串&#xff0c;比如&#xff1a; $strefasfgzsrhftjxjxjhsrth; 则在函数里面生成的字符串就回从efasfgzsrhftjxjxjhsrth里面随机抓取&#xff1b; …

python中getopt函数_python getopt模块详解

getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤。 getopt是个模块&#xff0c;而这个模块里面又有getopt 函数&#xff0c;所以getopt需要这样这样用。 getopt.getopt( [命令行参数列表], "短选项", [长选项列表] ) 该函数返回两个值. opts 和a…

Go语言的前景分析

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 抓住时代的趋势 在上篇文章中&#xff0c;也就是那个跨维度的打击&#xff0c;是可以直接秒杀的中&#xff0c;提到这个时代的问题&#xff0c;这次…

SQL获取当月天数的几种方法

SQL获取当月天数的几种方法 原文:SQL获取当月天数的几种方法 日期直接减去int类型的数字 等于 DATEADD(DAY,- 数字,日期) 下面三种方法&#xff1a; 1&#xff0c;日期加一个月减去当前天数&#xff0c;相当于这个月最后一天的日期。然后获取天数。&#xff08;注意&#xff0c…

移动端zepot媒体查询media queries

使用zepot做轮播图<head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0"> <title>jd首页</title> <link…

前端try catch是如何捕获异常的_一文告诉你如何优雅处理前端异常?

前端一直是距离用户最近的一层&#xff0c;随着产品的日益完善&#xff0c;我们会更加注重用户体验&#xff0c;而前端异常却如鲠在喉&#xff0c;甚是烦人。一、为什么要处理异常&#xff1f;异常是不可控的&#xff0c;会影响最终的呈现结果&#xff0c;但是我们有充分的理由…

区块链热度不断,那么究竟是泡沫还是未来?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链究竟是泡沫还是未来&#xff0c;需要落脚到实际运用中去判断。区块链区别于传统服务器&#xff0c;其宗旨不是为现实世界带来某个特定的产品&…

集成 Kendo UI for Angular 2 控件

伴随着 Angular 2 的正式 release&#xff0c;Kendo UI for Angular 2 的第一批控件已经发布了&#xff0c;当前是 Beta 版本&#xff0c;免费使用。 官方站点&#xff1a;Kendo UI for Angular 2 Kendo UI for Angular 被打包成独立的多个 NPM package&#xff0c;在 Progres…

按钮垂直居中_带下拉按钮的动态图表

小伙伴们好啊&#xff0c;今天和大家一起分享一个图表制作的技巧&#xff0c;先来看看效果&#xff1a;这个图表里&#xff0c;其实有三个数据系列&#xff0c;分别是一深一浅两个颜色的条形图&#xff0c;再就是大大的圆圈儿&#xff0c;其实是用散点图模拟出来的。先来看数据…

第一周Access课总结

第一周Access课总结 1&#xff1a;这节课学到了什么&#xff1f; 这节课重点学了数据库是用来干什么 做什么的 老师怕我们理解不了 用了很长时间向我们举了很多的例子 让我们终于知道了数据库是用来干嘛的了 顾名思义 数据库就是存放数据的仓库 是长期存放在计算机内 有组织…

以太坊,EOS和其他DApps的总数达到2,432,但没有大规模采用

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 根据分散应用监测网站StateOfTheDApps&#xff0c;每月创建的新DApps数量的最高水平是2018年12月。去年最后一个月共有179个新的DApps上线。 以太…

docker logstash_用于监视Kubernetes和Docker的六大开源工具

Kubernetes和Docker是在DevOps圈中最常听到的两个词。Docker是一个工具&#xff0c;它使你能够以容器化的方式运行应用程序&#xff0c;Kubernetes是一个用于编排、管理容器的平台——如果你想使用Docker CLI去手动地管理数千个容器&#xff0c;这是不切实际的。然而&#xff0…

大道至简第一章读后感

当今社会&#xff0c;信息化飞速发展&#xff0c;软件的需求也越来越高&#xff0c;而《大道至简》给我们点透了编程的精义。 大道至简第一是讲的便是编程的精义&#xff0c;文章借愚公移山这个故事来阐释编程的基本思路&#xff1a;出现一个问题&#xff08;惩山北之塞&#x…

nginx resolver 指令的使用

官方解释下就是&#xff1a;反向代理的场景&#xff0c;upstream后端用域名时&#xff0c;配置resolver以便于nginx能够解析该域名 Configures name servers used to resolve names of upstream servers into addresses 官网地址&#xff1a;http://nginx.org/en/docs/http/ngx…

以太坊和EOS DApp数量上升

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 目前&#xff0c;在最受欢迎的智能合约平台以太坊和EOS上&#xff0c;每月大约有180个新的去中心化应用程序(DApps)&#xff0c;该数量处于历史最高…

转载iOS开发中常见的警告及错误

iOS警告收录及科学快速的消除方法 前言&#xff1a;现在你维护的项目有多少警告&#xff1f;看着几百条警告觉得心里烦么&#xff1f;你真的觉得警告又不是错误可以完全不管么&#xff1f; 如果你也被这些问题困惑&#xff0c;可以和我一起进行下面的操作。其实大部分的警告都是…