任意阶幻方..
时间:2022-05-05
本文章向大家介绍任意阶幻方..,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 /*@coder Gxjun*/
2 #include<stdio.h>
3 #include<string.h>
4 #include<stdlib.h>
5 #define maxn 100
6 int map[maxn][maxn] ;
7 void creat_magic(int n,int x,int y ,int sn) //奇阶幻方构造
8 {
9 int i,j,k;
10 i=0;
11 j=n/2;
12 for(k=n;k<=n*n;k++)
13 {
14 map[i+x][j+y]=k+sn;
15 if(k%n!=0)
16 {
17 if(i!=0) i--;
18 else i=n-1;
19 if(n==j+1) j=0;
20 else j++;
21 }
22 else
23 {
24 if(i==n-1)i=0;
25 else i++;
26 }
27 }
28 }
29
30 void magic_4(int n)
31 {
32 int i,j;
33 for(i=0 ; i<n ;i++)
34 {
35 for(j=0 ; j<n ;j++)
36 {
37 if((i%4==0||i%4==3)&&(j%4==0||j%4==3)||(i%4==1||i%4==2)&&(j%4==1||j%4==2))
38 {
39 map[i][j]=n*n-(i*n+j);
40 }
41 else
42 {
43 map[i][j]=i*n+j+1; //i*n+j+n
44 }
45 }
46 }
47 }
48
49 void magic_other(int n)
50 {
51 int i,j,t;
52 creat_magic(n/2,0,0,0);
53 creat_magic(n/2,n/2,n/2,n*n/4);
54 creat_magic(n/2,0,n/2,n*n/2);
55 creat_magic(n/2,n/2,0,n*n/4);
56 for(i=0;i<n/2;i++)
57 {
58 for(j=0;j<n/4;j++)
59 {
60 if(i!=n/4||j!=0)
61 {
62 /*<swap>*/
63 t=map[i][j];
64 map[i][j]=map[i+n/2][j];
65 map[i+n/2][j]=t;
66 }
67 }
68 }
69 t=map[n/4][n/4];
70 map[n/4][n/4]=map[n/4+n/2][n/4];
71 map[n/4+n/2][n/4]=t;
72 for(i=0;i<n/2;i++)
73 {
74 for(j=n-n/4+1 ;j<n;j++)
75 {
76 t=map[i][j];
77 map[i][j]=map[i+n/2][j];
78 map[i+n/2][j]=t;
79 }
80 }
81 }
82 int main()
83 {
84 int n,i,j;
85 while(scanf("%d",&n)!=EOF)
86 {
87 memset(map,0,sizeof(map));
88 if(n&1) creat_magic(n,0,0,0);
89 else if(n%4==0) magic_4(n);
90 else magic_other(n);
91 for(i=0;i<n;i++)
92 {
93 for(j=0;j<n;j++)
94 {
95 printf("%d ",map[i][j]);
96 }
97 putchar(10);
98 }
99 }
100 return 0;
101 }
- 测序文章数据上传找哪里
- Volatile实现原理实现原子性happens-before关系从happends-before规则分析可见性编译器层面实现可见性处理器层面实现可见性
- java中的toString方法
- 简单可视化-送你一双发现美的眼睛
- 享元模式
- 揭秘:针对中国移动用户的强大网银木马剖析
- 从源代码到Runtime发生的重排序编译器重排序指令重排序内存系统重排序阻止重排序
- 内存屏障保证缓存一致性优化
- 最新XSS 0day漏洞来袭,影响最新版本IE浏览器(含POC)
- Java内存模型—JMMhappens-before规则
- 那些年我们一起用过的Hybrid App
- 来看看美帝人民的安全意识:安全研究人员指责iOS版Outlook存在多处安全隐患
- 不是原配也可以-对接非原生配体
- oj放苹果
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法