网站首页
网站导航
Ctrl+D收藏
首 页
代码段
源码包
文档库
工具箱
代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C/C++
】
幻方构造
作者:
萧冉
/ 发布于
2016/4/21
/
316
//幻方构造(l!=2) #define MAXN 100 void dllb(int l,int si,int sj,int sn,int d[][MAXN]){ int n,i=0,j=l/2; for (n=1;n<=l*l;n++){ d[i+si][j+sj]=n+sn; if (n%l){ i=(i)?(i-1):(l-1); j=(j==l-1)?0:(j+1); } else i=(i==l-1)?0:(i+1); } } void magic_odd(int l,int d[][MAXN]){ dllb(l,0,0,0,d); } void magic_4k(int l,int d[][MAXN]){ int i,j; for (i=0;i<l;i++) for (j=0;j<l;j++) d[i][j]=((i%4==0||i%4==3)&&(j%4==0||j%4==3)||(i%4==1||i%4==2)&&(j%4==1||j%4==2))?(l*l-(i*l+j)):(i*l+j+1); } void magic_other(int l,int d[][MAXN]){ int i,j,t; dllb(l/2,0,0,0,d); dllb(l/2,l/2,l/2,l*l/4,d); dllb(l/2,0,l/2,l*l/2,d); dllb(l/2,l/2,0,l*l/4*3,d); for (i=0;i<l/2;i++) for (j=0;j<l/4;j++) if (i!=l/4||j) t=d[i][j],d[i][j]=d[i+l/2][j],d[i+l/2][j]=t; t=d[l/4][l/4],d[l/4][l/4]=d[l/4+l/2][l/4],d[l/4+l/2][l/4]=t; for (i=0;i<l/2;i++) for (j=l-l/4+1;j<l;j++) t=d[i][j],d[i][j]=d[i+l/2][j],d[i+l/2][j]=t; } void generate(int l,int d[][MAXN]){ if (l%2) magic_odd(l,d); else if (l%4==0) magic_4k(l,d); else magic_other(l,d); }
评论列表
本站所提供的代码,版权归原作者所有,若有侵犯作者版权,请与我们联系,我们将立即删除或修改。谢谢!
本站所有代码发布及提供者。
试试其它关键字
幻方构造
同语言下
.
C分鱼问题
.
链表
.
最大连续和
.
编码字符串
.
libiconv字符编码处理及判断字符串是否为utf8
.
一组数中两两二元组,差最大有几对,差最小呢?(数组
.
通过管道获取一个进程的执行状态
.
多关键字排序
.
字符串字典序排序
.
3元一次方程(牛顿迭代法求方程的根)
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
判断用户输入的是否为IP地址
萧冉
贡献的其它代码
(
15
)
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
累积求和,累加变累减
.
collection,list,map 排序
.
获取文件后缀
.
调用HTTP接口
.
比较两个 List 的值是否相等
.
实现旋转字符串
.
不一样的索引框
.
如何判断ipad或者iphone是否为横屏或者竖屏
.
检测各种浏览器
地图
本站
我们
服务
版权
联系
回馈
博客