问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

会玩九宫格吗,1-9,9个数字排3排,横向纵向斜着加都是15 用代码写出来,您是怎样一个算法??

发布网友 发布时间:2022-05-07 22:56

我来回答

4个回答

热心网友 时间:2023-11-19 00:16

这个方法适用于所有奇数幻方:
首先,把1放在中间一列最上边的方格中。从1开始,按对角线方向(比如说从左下到右下的方向)顺次把由小到大的各数放入各方格中,在这个过程中:
1 如果碰到顶,则折向底
2 如果到达右侧,则转向左侧
3 如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。
8 1 6
3 5 7
4 9 2
其中2、9是第1种情况,3、8是第2种,4、7是第3种

热心网友 时间:2023-11-19 00:16

1楼

/*2006年1月1日*/
/*九宫格的实现*/
/*新年新迹象,事事好兆头*/
/*祝自己新年快乐*/
#include <stdio.h>
#define MAX 4
#define MAX_N 3
void main()
{
int a[MAX][MAX];
int i,j;
int n,m;
int k,max;
for(i=1;i<MAX;i++)
for(j=1;j<MAX;j++)
a[i][j]=0;
i=1;j=MAX/2;
a[i][j]=1;
max=MAX_N*MAX_N+1;
for(k=2;k<max;k++)
{
if(i==1) n=MAX_N;
else n=i-1;
if(j==1) m=MAX_N;
else m=j-1;
if(a[n][m])
if(i==MAX_N)
{
i=1;
a[i][j]=k;
}
else a[++i][j]=k;
else/*当待填如格子是没数时*/
{
if(i==1) {i=MAX_N;a[i][--j]=k;}
else if(j==1)
{j=MAX_N;a[--i][j]=k;}
else a[--i][--j]=k;
}
}
for(i=1;i<MAX;i++)
{
for(j=1;j<MAX;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}追问这是您06年做的吗?

追答注释无所谓,能出结果就行了

热心网友 时间:2023-11-19 00:16

这个方法适用于所有奇数幻方:
首先,把1放在中间一列最上边的方格中。从1开始,按对角线方向(比如说从左下到右下的方向)顺次把由小到大的各数放入各方格中,在这个过程中:
1 如果碰到顶,则折向底
2 如果到达右侧,则转向左侧
3 如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。
8 1 6
3 5 7
4 9 2
其中2、9是第1种情况,3、8是第2种,4、7是第3种

热心网友 时间:2023-11-19 00:17

中间是5,两边之和是10 ,即第一行8 3 4第二行1 5 9第三行是6 7 2

热心网友 时间:2023-11-19 00:16

1楼

/*2006年1月1日*/
/*九宫格的实现*/
/*新年新迹象,事事好兆头*/
/*祝自己新年快乐*/
#include <stdio.h>
#define MAX 4
#define MAX_N 3
void main()
{
int a[MAX][MAX];
int i,j;
int n,m;
int k,max;
for(i=1;i<MAX;i++)
for(j=1;j<MAX;j++)
a[i][j]=0;
i=1;j=MAX/2;
a[i][j]=1;
max=MAX_N*MAX_N+1;
for(k=2;k<max;k++)
{
if(i==1) n=MAX_N;
else n=i-1;
if(j==1) m=MAX_N;
else m=j-1;
if(a[n][m])
if(i==MAX_N)
{
i=1;
a[i][j]=k;
}
else a[++i][j]=k;
else/*当待填如格子是没数时*/
{
if(i==1) {i=MAX_N;a[i][--j]=k;}
else if(j==1)
{j=MAX_N;a[--i][j]=k;}
else a[--i][--j]=k;
}
}
for(i=1;i<MAX;i++)
{
for(j=1;j<MAX;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}追问这是您06年做的吗?

追答注释无所谓,能出结果就行了

热心网友 时间:2023-11-19 00:16

这个方法适用于所有奇数幻方:
首先,把1放在中间一列最上边的方格中。从1开始,按对角线方向(比如说从左下到右下的方向)顺次把由小到大的各数放入各方格中,在这个过程中:
1 如果碰到顶,则折向底
2 如果到达右侧,则转向左侧
3 如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。
8 1 6
3 5 7
4 9 2
其中2、9是第1种情况,3、8是第2种,4、7是第3种

热心网友 时间:2023-11-19 00:16

这个方法适用于所有奇数幻方:
首先,把1放在中间一列最上边的方格中。从1开始,按对角线方向(比如说从左下到右下的方向)顺次把由小到大的各数放入各方格中,在这个过程中:
1 如果碰到顶,则折向底
2 如果到达右侧,则转向左侧
3 如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。
8 1 6
3 5 7
4 9 2
其中2、9是第1种情况,3、8是第2种,4、7是第3种

热心网友 时间:2023-11-19 00:17

中间是5,两边之和是10 ,即第一行8 3 4第二行1 5 9第三行是6 7 2

热心网友 时间:2023-11-19 00:18

4 3 8
9 5 1
2 7 6

热心网友 时间:2023-11-19 00:16

1楼

/*2006年1月1日*/
/*九宫格的实现*/
/*新年新迹象,事事好兆头*/
/*祝自己新年快乐*/
#include <stdio.h>
#define MAX 4
#define MAX_N 3
void main()
{
int a[MAX][MAX];
int i,j;
int n,m;
int k,max;
for(i=1;i<MAX;i++)
for(j=1;j<MAX;j++)
a[i][j]=0;
i=1;j=MAX/2;
a[i][j]=1;
max=MAX_N*MAX_N+1;
for(k=2;k<max;k++)
{
if(i==1) n=MAX_N;
else n=i-1;
if(j==1) m=MAX_N;
else m=j-1;
if(a[n][m])
if(i==MAX_N)
{
i=1;
a[i][j]=k;
}
else a[++i][j]=k;
else/*当待填如格子是没数时*/
{
if(i==1) {i=MAX_N;a[i][--j]=k;}
else if(j==1)
{j=MAX_N;a[--i][j]=k;}
else a[--i][--j]=k;
}
}
for(i=1;i<MAX;i++)
{
for(j=1;j<MAX;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}追问这是您06年做的吗?

追答注释无所谓,能出结果就行了

热心网友 时间:2023-11-19 00:16

1楼

/*2006年1月1日*/
/*九宫格的实现*/
/*新年新迹象,事事好兆头*/
/*祝自己新年快乐*/
#include <stdio.h>
#define MAX 4
#define MAX_N 3
void main()
{
int a[MAX][MAX];
int i,j;
int n,m;
int k,max;
for(i=1;i<MAX;i++)
for(j=1;j<MAX;j++)
a[i][j]=0;
i=1;j=MAX/2;
a[i][j]=1;
max=MAX_N*MAX_N+1;
for(k=2;k<max;k++)
{
if(i==1) n=MAX_N;
else n=i-1;
if(j==1) m=MAX_N;
else m=j-1;
if(a[n][m])
if(i==MAX_N)
{
i=1;
a[i][j]=k;
}
else a[++i][j]=k;
else/*当待填如格子是没数时*/
{
if(i==1) {i=MAX_N;a[i][--j]=k;}
else if(j==1)
{j=MAX_N;a[--i][j]=k;}
else a[--i][--j]=k;
}
}
for(i=1;i<MAX;i++)
{
for(j=1;j<MAX;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}追问这是您06年做的吗?

追答注释无所谓,能出结果就行了

热心网友 时间:2023-11-19 00:17

中间是5,两边之和是10 ,即第一行8 3 4第二行1 5 9第三行是6 7 2

热心网友 时间:2023-11-19 00:18

4 3 8
9 5 1
2 7 6

热心网友 时间:2023-11-19 00:17

中间是5,两边之和是10 ,即第一行8 3 4第二行1 5 9第三行是6 7 2

热心网友 时间:2023-11-19 00:18

4 3 8
9 5 1
2 7 6

热心网友 时间:2023-11-19 00:16

这个方法适用于所有奇数幻方:
首先,把1放在中间一列最上边的方格中。从1开始,按对角线方向(比如说从左下到右下的方向)顺次把由小到大的各数放入各方格中,在这个过程中:
1 如果碰到顶,则折向底
2 如果到达右侧,则转向左侧
3 如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。
8 1 6
3 5 7
4 9 2
其中2、9是第1种情况,3、8是第2种,4、7是第3种

热心网友 时间:2023-11-19 00:16

1楼

/*2006年1月1日*/
/*九宫格的实现*/
/*新年新迹象,事事好兆头*/
/*祝自己新年快乐*/
#include <stdio.h>
#define MAX 4
#define MAX_N 3
void main()
{
int a[MAX][MAX];
int i,j;
int n,m;
int k,max;
for(i=1;i<MAX;i++)
for(j=1;j<MAX;j++)
a[i][j]=0;
i=1;j=MAX/2;
a[i][j]=1;
max=MAX_N*MAX_N+1;
for(k=2;k<max;k++)
{
if(i==1) n=MAX_N;
else n=i-1;
if(j==1) m=MAX_N;
else m=j-1;
if(a[n][m])
if(i==MAX_N)
{
i=1;
a[i][j]=k;
}
else a[++i][j]=k;
else/*当待填如格子是没数时*/
{
if(i==1) {i=MAX_N;a[i][--j]=k;}
else if(j==1)
{j=MAX_N;a[--i][j]=k;}
else a[--i][--j]=k;
}
}
for(i=1;i<MAX;i++)
{
for(j=1;j<MAX;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}追问这是您06年做的吗?

追答注释无所谓,能出结果就行了

热心网友 时间:2023-11-19 00:17

中间是5,两边之和是10 ,即第一行8 3 4第二行1 5 9第三行是6 7 2

热心网友 时间:2023-11-19 00:18

4 3 8
9 5 1
2 7 6

热心网友 时间:2023-11-19 00:18

4 3 8
9 5 1
2 7 6
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 7用英语怎么说!! 选择法排序 c看哈哪里不对,谢了 在c++数据排序中什么叫做有跨度的交换 放到水里会冒烟 max 函数头文件 歌曲名ラヴァーズ 歌手7!! 我想知道这女的名字,以及她的相片来源 aij=max{i,5-j}表示什么? 求7!! —— オレンジ 的歌词 要日文+中文+罗马音 用动态分配内存和指针求一个班成绩的平均值,最大值,最小值 7的意思是! 7的阶乘等于多少 7!是怎么运算的? 关于IP轰炸提问 IP轰炸器有什么用? 被网络轰炸了怎么办? google adwords和谷歌趋势的区别 用AAA短信轰炸这软件测试自己手机停不下来怎么办?短信一直来,疯了! 轰炸网络电话5s专用 中国有反原子弹的武器吗? javascript:var%20s%20=%20document.createElement(&#39;script&#39;);s.type=&#39;text&#47;javas 之后可以轰炸网页真的吗 c程序分析(改进冒泡法排序,我不明白max的只是如何变化的)1 用回溯法解定和子集问题、0/1背包问题和n皇后问题的算法比较 3ds max快捷键J和K是什么意思 在C++中找二维数组的鞍点,其中定义j为列数,for(intk=0;k&lt;n;k++)if(max&gt;a[k][maxj])是什么意思 那句max语句是什么意思? ?j:max是什么意思? 谁能编程实现int[] max={6,5,2,9,7,4,0}冒泡排序算法? C语言设计程序计算一段英语中最长的单词,这个程序为什么不行? T-MAX《伊甸园》韩文歌词拼音 企业下发红头文件落款处是否需要加盖公章 糯米的出米率是多少 怎么开启或关闭系统还原 糯稻谷的出米率大约是多少? 糯米的出成率 莫呀为一类是什么意思 醪糟产品标准糯米出饭率多少 制作米的过程碎米占多大比例? 香米粳米糯米三种米比例多少才会香糯? 归为一类 英语怎么说 籼稻颗粒大出米率高,籼稻一般适合在哪里种植? 2020年莆田教师资格的报考条件有哪些?