神奇的幻方(洛谷P2615题题解,Java语言描述)
题目要求
P2615题目链接
分析
注意题目说的是,幻方的N必定是奇数(实测确实不能是偶数),那就不需要检测了。
实际模拟,就是一个地图,按指定的要求移动就行。
这种题,看着吓人,但是其实严格按照说编写代码就行了,并不需要自己设计什么算法。
AC代码(Java语言描述)
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();scanner.close();int[][] array = new int[num][num];int last_x = 0, last_y = num/2;//肯定是奇数array[0][last_y] = 1;for (int i = 2; i <= num*num; i++) {if (last_x == 0 && last_y != num-1) {last_x = num-1;++last_y;} else if (last_x != 0 && last_y == num-1) {--last_x;last_y = 0;} else if (last_x == 0 && last_y == num-1) {++last_x;} else if (array[last_x-1][last_y+1] == 0) {--last_x;++last_y;} else {++last_x;}array[last_x][last_y] = i;}StringBuilder result;for (int i = 0; i < num; i++) {result = new StringBuilder();for (int j = 0; j < num; j++) {result.append(array[i][j]).append(" ");}System.out.println(result.toString().trim());}}
}
神奇的幻方(洛谷P2615题题解,Java语言描述)相关推荐
- AC日记——神奇的幻方 洛谷 P2615(大模拟)
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)
题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...
- 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)
题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...
- 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...
- 贪心策略摘果子(洛谷P1478题题解,Java语言描述)
题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...
- 麦森数(洛谷P1045题题解,Java语言描述)
题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...
- 求子集元素之和(洛谷P2415题题解,Java语言描述)
题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...
- N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)
题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...
最新文章
- 网站内链如何布局才能使蜘蛛更喜欢?
- 第六周实践作业:软件测试和评估
- 局域网无法访问本地apache
- SQL Server 2008 批量插入数据时报错
- 汇编原理实验 --查找子字符串的位置
- boost::assertion_failed_msg相关的测试程序
- python函数图像平移_[Python图像处理]六.图像缩放,图像旋转,图像翻转与图像平移...
- 【Elasticsearch】请在64位平台上使用Lucene的MMapDirectory
- c语言学习-有一12个元素的整型数组b,从键盘输入数据,请以每行4个数据各个数据之间空两格的形式输出b数组的12个元素
- HDU2022 海选女主角【入门】
- 关于MATLAB实现的数字信号处理(四)
- 《纽约邮报》手机客户端推送系统被黑 黑客发送抒情诗
- JavaScript:字符串相关操作
- javascript 基础之手机端相关事件-touch(详细篇)(1)
- Android源码下载编译(TI)
- iOS 一种连线题效果的实现
- 硬盘格式转换:MBR转换到GPT怎么转?
- java jar apktool,apktool.jar
- c语言二维数组a中,a,a[0],a[0][0]的值与值的类型
- Atcoder TOYOTA SYSTEMS Programming Contest 2021(AtCoder Beginner Contest 228) B - Takahashi‘s Secret