Day30练习java-魔方阵+心得

原本想说都最後一天了,就写个心得就好了ㄅ,但是同学突然问我要不要写写看魔方阵,引起我的好奇心想说试试,当作这三十的最後一题,首先先来介绍什麽是魔方阵:在一个方阵中每行、每列以及两条对角线上的数之和均相等,而且方阵不是唯一,有区分成奇数阶及偶数阶,今天主要介绍的是奇数阶,要构成奇数阶的魔方阵我使用的方法为Siamese方法
步骤如下:
把1放置在第一行的中间。
顺序将 2,3,等数放在右上方格中。
当右上方格出界的时候,则由另一边进入。
当右上方格中已经填有数或是两边都出界(同时超出行与列的范围),则把数填入正下方的方格中。
按照以上步骤直到填写完所有N^2个方格。
(由於对称性,也可以把右上改为右下、左上以及左下等方位)
以下是实作:
右上方开始
https://ithelp.ithome.com.tw/upload/images/20201015/20130684ejuGqOlg0F.png
演算部分参考https://openhome.cc/Gossip/AlgorithmGossip/OddArray.htm
这个网站写的是从右上方开始
而我试着改成从右下方开始
https://ithelp.ithome.com.tw/upload/images/20201015/20130684nQwsPO4GTu.png
https://ithelp.ithome.com.tw/upload/images/20201015/20130684872k22m6Yx.png
其实如果仔细看两者其实只是差在数字放入的地方不同,需要多判断超出格子的方式,基本上都一样
但是要从无写出来我真的觉得不是很容易。
以下是完整的程序码:
https://ithelp.ithome.com.tw/upload/images/20201015/20130684UljVByK9yy.pnghttps://ithelp.ithome.com.tw/upload/images/20201015/20130684edN61LgfFa.png

心得:
转眼间连续写程序已经不知不觉就过了一个月了,当初给自己定这个目标就是要督促自己写程序培养实作的能力,说真的天天写真的是有差,从最一刚开始连基本的回圈要怎麽用都要去翻书,而现在连三层都能够用想的写出来,我认为是一项很有成就感的事,每天接触不一样的题目,能帮助思考的速度越来越快,而且我前面不知道是哪根筋不对竟然一直在写演算法,跟其他的比演算法真的是最烧脑的一项挑战,而最後也以演算法作结束,难度也比以往的高,虽然无法从无到有,但是理解後能够自己做修改我认为也是进步的一种方式~~
最终期望自己这30天里做的能对未来的专题有所帮助,也希望这门课能修过٩(^ᴗ^)۶


<<:  Day 29. End To End Testing

>>:  Day 30 完赛!!!!!

Burp Suite 已经提供给你了最便利的 C2 Server

虽然是写C2 Server, 但实际上我们并不是真的要从这个Server发送指令出去, 我们只是要让...

Day21 NodeJS-Express VI

今天的内容是Express部份的最後一哩路:Restful API与应用程序结构化。前几天从前端到後...

Day 29 隐私规划与UI设计定义实作

前面提到如何规划拟定隐私三宝,今天就针对隐私策略的部分如何整合至产品的UI设计上呢?这会实际涵盖Pr...

Day.22 「让我们在更深入函式~」 —— JavaScript call & apply & arguments

之前我们有说过,再调用函式的时候,浏览器会传递隐藏的参数给我们函式 一个是「this」,除了 th...

【Day 05】领域驱动设计的启动

观察的视角 我们要如何描述一个系统呢? 可以从不同的角度观察,好比瞎子摸象,你摸到甚麽部位,系统就像...