当前位置: 首页 > news >正文

刷题日记—洛谷数组题单—幻方

幻方

image
如图
题目要求输入n,构建一个nn的幻方,很显然是一个二维数组,但是要怎么插入呢?插入必然要用到循环。是for还是while?
由题目条件可知,幻方的数值是从1——n
n,并且第一个数的位置已经确定,而第X个数是由X—1的位置来决定的,所以我们可以先在第X个数时得到X+1的位置,并且在下一次循环一开始就将其赋予其X+!,循环直至n*n
所以for循环更好一些,所以代码如下:

#include<iostream>
using namespace std;
const int a=40;
int ans[a][a]={0};
int main(){int n;int x=1,y=0;cin>>n;y=(n+1)/2;for(int i=1;i<=n*n;++i){ans[x][y]=i;if(x==1&&y==n||ans[x-1][y+1]){x++;}else if(x==1){x=n;y++;}else if(y==n){y=1;x--;}else{x--;y++;}}for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){cout<<ans[i][j]<<' ';}cout<<endl;}return 0;
}

这里有个细节,由于条件1和条件2是条件3的分条件,可以先判条件3,这样条件1,条件2就更好判了;并且由于条件3和条件4的后半段条件的运算结果一致,并且条件4的后半段与条件1和条件2互斥,所以可以将条件3和条件4的后半段合并,使代码显得更加简洁

http://www.hskmm.com/?act=detail&tid=39011

相关文章:

  • 基因组选择(GS)如何加速作物遗传增益?
  • Nature Plants | 植物转录因子结合图谱,360个转录因子的近3000个全基因组结合位点图谱
  • 深入解析:3. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--从业务到方案:消费类目智能匹配的整体设计
  • xyd 2025 S 模拟赛
  • 标题:AI巨头动态:从OpenAI的野心到Meta的裁员潮
  • Plant Com | 将基因编辑与组学、人工智能和先进农业技术相结合以提高作物产量
  • 作品目录
  • 推荐书籍 | 基因组遗传大数据分析方法
  • Python 潮流周刊#74:创下吉尼斯世界记录的 Python 编程课
  • 10.26保养
  • CCPC2024济南个人题解
  • 数据采集作业1
  • Python 潮流周刊#124:理性看待 GIL 的移除
  • OpenAI推出内置ChatGPT的Atlas浏览器:重新定义网页浏览体验
  • 数据清洗
  • 10.25
  • 102302104刘璇-数据采集与融合技术实践作业1
  • 102302110高悦作业1
  • 2025.10.23 模拟赛
  • 刷题日记—洛谷循环题单 1.数学思想在算法题中的应用: 2.回文数的判定:
  • Day23-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\InOut
  • 【题解】洛谷P14308 【MX-S8-T1】斐波那契螺旋
  • MAC地址类型速记
  • 《程序员修炼之道》阅读笔记3
  • 深入解析:关于在博客页面添加live2d-widget的一些心得和踩过的坑
  • Android设备位置历史深度解析:本地存储与取证技术
  • LLM学习记录DAY12
  • MCP Gateway 综述与实战指南
  • 清晨的阳光刚染红天边,我就钻进了彩虹色的热气球吊篮
  • vue3 不同构建版本