数阵小算法
来源:互联网 发布:windows如何更新系统 编辑:程序博客网 时间:2024/05/22 15:39
数阵,每行,每列,对角线之和均相等
#include <stdio.h># define Max 20void main(){ void create(int n); int n; printf("input number:"); scanf("%d",&n); create(n);}void create(int n){ int a[Max][Max],k,l; for(k=0;k<n;k++)//初始化0,置标记 { for(l=0;l<n;l++) a[k][l]=0; } a[0][n/2]=1;//初始化1 int prei=0,prej=n/2;//记录前驱下标 int count=1; int indexi,indexj;//当前下标 while(count<n*n)//魔方数字个数 { indexi=(prei-1+n)%n; indexj=(prej+1)%n; if(a[indexi][indexj]==0) { a[indexi][indexj]=++count; prei=indexi;//前驱小标移动 prej=indexj; } else//回退,利用前驱找空位置 { while(a[(prei+1)%n][prej]!=0)//上一个数的下面 { prei=(prei+1)%n; prej=(prej-1+n)%n; } prei=(prei+1)%n;//行+1,列不变 a[prei][prej]=++count; } } //输出 for(k=0;k<n;k++) { for(l=0;l<n;l++) printf("%4d ",a[k][l]); printf("\n"); }}
input number:5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Press any key to continue
0 0
- 数阵小算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- C++建模实战1-高考录取系统(3)
- Android性能优化之渲染优化
- floyd和迪杰斯特拉算法的路径记录方法。
- Linux读写文件所需要的权限,查看stat文件后最后三行日期的含义与修改
- 华为机试-找出字符串中第一个只出现一次的字符
- 数阵小算法
- JS的事件和JS的阻止事件
- HTML静态网页中字体对页面布局的影响
- HTTP NOTES
- PHP 和 AJAX MySQL 数据库实例
- SDUT 2937 人活着系列之寻找最完美的人生
- 记录Android-Studio遇到的各种坑
- BZOJ2298 [HAOI2011]problem a
- 2016TNNLS发表的一篇人脸识别论文的matlab源代码