用递归的方式解决n阶幻方

news/2025/11/16 0:33:41/文章来源:https://www.cnblogs.com/first111/p/19226591

include <stdio.h>

include <stdlib.h>

void f(int num,int n,int a[][n],int hang1,int lie1){
a[hang1][lie1]=num;

if(num==n*n){return;}
int nexthang,nextlie;if(hang1==0&&lie1!=n-1){//a[n-1][lie1+1]=++num;nexthang=n-1;nextlie=lie1+1;//return f(num,n,a,n-1,lie1+1);
}
else if(lie1==n-1&&hang1!=0){//a[hang1-1][0]=++num;nexthang=hang1-1;nextlie=0;//return f(num,n,a,hang1-1,0);
}
else if(hang1==0&&lie1==n-1){//a[hang1+1][lie1]=++num;nexthang=hang1+1;nextlie=lie1;//return f(num,n,a,hang1+1,lie1);
}
else if(hang1!=0&&lie1!=n-1){if(a[hang1-1][lie1+1]==0){//a[hang1-1][lie1+1]=++num;nexthang=hang1-1;nextlie=lie1+1;//return f(num,n,a,hang1-1,lie1+1);}else{//a[hang1+1][lie1]=++num;nexthang=hang1+1;nextlie=lie1;//return f(num,n,a,hang1+1,lie1);}
}
else{return;}
return f(num+1,n,a,nexthang,nextlie);

}
int main(){
int n;
scanf("%d",&n);
int a[n][n];
int hang,lie;int num=1;
for(hang=0;hang<n;hang++){
for(lie=0;lie<n;lie++){
a[hang][lie]=0;
}
}
f(1,n,a,0,(n-1)/2);

for(hang=0;hang<n;hang++){for(lie=0;lie<n;lie++){if(lie==n-1){printf("%d",a[hang][lie]);}else{printf("%d ",a[hang][lie]);} }if(hang!=n-1){printf("\n");}
}return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

imm docker 备份/迁移

备份篇 可选,备份镜像,大小1GB,但是docker pull一万年,所以最好备份一下。 # 创建镜像导出脚本 cat > export-images.sh << EOF #!/bin/bash IMAGES=("ghcr.io/immich-app/immich-server:v2"&q…

abc326-d 题解

比较麻烦的暴力搜索abc326-d 题解 题目链接 一开始读错题了,以为abc可以出现多次,浪费了很多时间,一定要戒骄戒躁读好题! 这种搜索题要思路打开,想一想以什么搜索 按列去搜索,感觉自己写的有点麻烦了 我的代码: …

搭建一个CTF比赛平台的经过

搭建一个CTF比赛平台的经过由来 我们实验室招新需要一个ctf做题环境,但是我们平时使用的NSSCTF的比赛功能在升级 ,所以我们准备自己搭建一个比赛环境 原本我们是准备使用CTFd这个平台来搭建的,但是我看了下,它默认…

11_15

11_15做题总结 今天来讲两个题目,一个是昨天的D1,一个是自己找的D4的E D1 序列一开始从1到1e12 输入x,y,k做x次操作,然后找到每次在数列中删掉下标是y的倍数的数,求操作完之后第k号数 先特判,如果y=-1或者暴力的边更…

四、Agent原理与ReAct 架构详解 ——《动手学Agent应用开发》学习心得

四、Agent原理与ReAct 架构详解 ——《动手学Agent应用开发》学习心得 ================================================================================== 最近参加了Datawhale开源组织举办的组队学习。本篇的学…

InterStellar

InterStellar 遥望无尽星际, 未知与神秘交错, 光芒与黑暗叠影。 感叹时空的伟大, 改变了容颜, 吹散人间爱意。 感叹爱的伟大, 聚如一团火, 散是满天星。 太空,太空, 你却又如此多情。

三、Agent 应用开发与落地全景 ——《动手学Agent应用开发》学习心得

三、Agent 应用开发与落地全景 ——《动手学Agent应用开发》学习心得 ================================================================================== 最近参加了Datawhale开源组织举办的组队学习。本篇的学习…

业财一体化五步法 - 智慧园区

你有没有在公司遇到过这些情况: 业务部门和财务部门的销售数据和账务数据总是对不上;业务部门卖得飞快,财务部门却发现账户上的钱少了;决策者要靠数据制定策略,结果数据没一个是可用的。 说白了 ,这些问题其实就…

猫树

有的时候线段树还是太慢了(需要 \(\log\) 次合并得出答案)。使用猫树可以空间换时间:\(O(n\log n)\) 空间,\(O(1)\) 时间。但是猫树不支持修改。 应用条件:静态,卡时间死/合并复杂度很高。 【构建】 先建出一颗正…

spiffworkflow

spiffworkflow https://spiffworkflow.readthedocs.io/en/latest/index.html SpiffWorkflow is a library that provides a flexible workflow execution environment. SpiffWorkflow is the workflow library underly…

Rust 解析验证码(结合 Tesseract OCR)

环境准备 1.1 安装 Rust 如果尚未安装 Rust,可以使用官方推荐的 rustup 进行安装: curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh 更多内容访问ttocr.com或联系1436423940 然后检查 Rust 版本: ru…

django-approval-workflow

django-approval-workflow https://github.com/Codxi-Co/django-approval-workflow A powerful, flexible, and reusable Django package for implementing dynamic multi-step approval workflows in your Django app…

Go 语言实现简单的文字识别(OCR)

随着人工智能技术的迅猛发展,文字识别(OCR,Optical Character Recognition)已经广泛应用于文档扫描、自动化数据输入等领域。在这篇文章中,我们将通过 Go 语言实现一个简单的文字识别程序,来提取图片中的文字。为…

『回忆录』高二上半期考试

上文:第一次月考。 现在是尚未出分的版本。 月回顾 从上次 1004 开始写,那天晚上也是开始疯狂回忆过去。 然后就是国庆强基三天自习一天。引流:国庆强基 中途 1006 那天晚上前两节课是生日会和中秋节。其中听歌识曲…

多项式牛顿迭代

【前置知识】泰勒展开。设 \(g\) 是一个光滑的函数,\(g(y)=\sum_{n\ge 0} \frac{g^{n}(y_0)}{n!}(y-y_0)^n\).多项式 exp。 给定多项式 \(a(x)\) 满足 \(a_0=0\),求 \(\exp a(x)\bmod x^n\)。 设 \(\exp a(x)=f(x)\)…

轮胎内喷涂优惠工具趋势分析报告

在轮胎制造与橡胶制品生产过程中,如何精准匹配工艺需求与材料性能,始终是行业采购决策中的核心难点。面对市面上琳琅满目的轮胎内喷涂、胶囊隔离剂、胶片隔离剂等产品,用户常因参数混乱、功能描述模糊或缺乏本地化适…

Vibe coding All In One

Vibe coding All In One Vibe coding is an artificial intelligence-assisted software development technique popularized by Andrej Karpathy in February 2025. It was named Collins Dictionarys Word of the Ye…

路径计数与反射容斥

【路径计数模型】 【卡特兰数】 组合意义:从 \((0,0)\) 走到 \((n,n)\),每次向右或者向上,不严格越过对角线的方案数。 它也和长度为 \(2n\) 的合法括号序列个数相等。各种问题都可以转化为卡特兰数。 回忆一下卡特…

多项式复合逆与拉格朗日反演

【定义】 对两多项式 \(f,g\),无常数项且一次项系数非 \(0\),有:\(f(g(x))=x\iff g(f(x))=x\)。(这个结论需要用到高深的群论知识,不会) 如果 \(f(g(x))=x\),称 \(f,g\) 互为复合逆。记 \(f^{-1}\) 为 \(f\) 的…