当前位置:首页 » 编程语言 » c语言3x3方格填数规律
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言3x3方格填数规律

发布时间: 2022-09-09 12:46:00

① 0-9的数字填入3*3格子中使任意连续数不能相邻,对角也算。。。c语言求解,快快的,跪求啊。

麻蛋的我还想写一下,想了想发现,不说你这10个数了,就当是9个数,你放任何一个数到中心位置,其他8个数都与这个数相邻,肯定TM有相邻的数啊,哪个坑爹的人出的题啊!!!

② 用C语言编写,1到九放到3*3的格子里,让3个的和都相等,

#include<stdio.h>

voidmain()

{

inti,j,k,m,n;

inta[20][20];

printf("pleaseinputthem:");//输入魔方阵阶数

scanf("%d",&m);

for(n=3;n<=m;n++)

{

if(n%2!=0)

{

printf("%4d阶魔方阵如下: ",n);

for(i=0;i<n;i++)

for(j=0;j<n;j++)

a[i][j]=0;

j=n/2;

a[0][j]=1;

for(k=2;k<=n*n;k++)

{

i--;

j++;

if(i<0)//行出界

i=n-1;

elseif(j>n-1)//列出界

j=0;

if(a[i][j]==0)

a[i][j]=k;

else

{

i=(i+2)%n;

j=(j-1+n)%n;

a[i][j]=k;

}

}

printf(" ");

for(i=0;i<n;i++) //打印魔方阵

{

for(j=0;j<n;j++)

printf("%4d",a[i][j]);

printf(" ");

}

}

}

}


③ 3x3方格填数规律中间是8

2 -8 6
4 0 -4
-6 8 -2

④ 填写三乘三方格的规律

看你能不能看懂,这个方法可以适用5*5,7*7,9*9等等基数阵列

1.1固定填在最上面中间位置

2.然后依次向右上填,如果超出阵列,就进行跳跃,这个要自己悟,比如填1了,2就填在最右下角的方格(看箭头跳转)

3.2填了就填3,同样超出阵列,进行跳跃

4.如果遇到右上已经有数了,就向下移动一格

⑤ C语言填幻方(不要穷举,要详细讲解)

下面的够详细了吧

奇阶幻方
当n为奇数时,我们称幻方为奇阶幻方。可以用Merzirac法与loubere法实现,根据我的研究,发现用国际象棋之马步也可构造出更为神奇的奇幻方,故命名为horse法。
偶阶幻方
当n为偶数时,我们称幻方为偶阶幻方。当n可以被4整除时,我们称该偶阶幻方为双偶幻方;当n不可被4整除时,我们称该偶阶幻方为单偶幻方。可用了Hire法、 Strachey以及YinMagic将其实现,Strachey为单偶模型,我对双偶(4m阶)进行了重新修改,制作了另一个可行的数学模型,称之为 Spring。YinMagic是我于2002年设计的模型,他可以生成任意的偶阶幻方。
在填幻方前我们做如下约定:如填定数字超出幻方格范围,则把幻方看成是可以无限伸展的图形,如下图:
Merzirac法生成奇阶幻方
在第一行居中的方格内放1,依次向左上方填入2、3、4…,如果左上方已有数字,则向下移一格继续填写。如下图用Merziral法生成的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

loubere法生成奇阶幻方
在居中的方格向上一格内放1,依次向右上方填入2、3、4…,如果右上方已有数字,则向上移二格继续填写。如下图用Louberel法生成的7阶幻方:
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20

horse法生成奇阶幻方
先在任意一格内放入1。向左走1步,并下走2步放入2(称为马步),向左走1步,并下走2步放入3,依次类推放到n。在n的下方放入n+1(称为跳步),再按上述方法放置到2n,在2n的下边放入2n+1。如下图用Horse法生成的5阶幻方:
77 58 39 20 1 72 53 34 15
6 68 49 30 11 73 63 44 25
16 78 59 40 21 2 64 54 35
26 7 69 50 31 12 74 55 45
36 17 79 60 41 22 3 65 46
37 27 8 70 51 32 13 75 56
47 28 18 80 61 42 23 4 66
57 38 19 9 71 52 33 14 76
67 48 29 10 81 62 43 24 5

一般的,令矩阵[1,1]为向右走一步,向上走一步,[-1,0]为向左走一步。则马步可以表示为2X+Y,{X∈{[1,0], [-1,0]},Y∈{[0,1], [0,-1]}}∪{Y∈{[1,0], [-1,0]},X∈{[0,1], [0,-1]}}。对于2X+Y相应的跳步可以为2Y,-Y,X,-Y,X,3X,3X+3Y。上面的的是X型跳步。Horse法生成的幻方为魔鬼幻方。
Hire法生成偶阶幻方
将n阶幻方看作一个矩阵,记为A,其中的第i行j列方格内的数字记为a(i,j)。在A内两对角线上填写1、2、3、……、n,各行再填写1、2、3、……、n,使各行各列数字之和为n*(n+1)/2。填写方法为:第1行从n到1填写,从第2行到第n/2行按从1到进行填写(第2行第1列填n,第2行第n列填1),从第n/2+1到第n行按n到1进行填写,对角线的方格内数字不变。如下所示为6 阶填写方法:
1 5 4 3 2 6
6 2 3 4 5 1
1 2 3 4 5 6
6 5 3 4 2 1
6 2 4 3 5 1
1 5 4 3 2 6

如下所示为8阶填写方法(转置以后):
1 8 1 1 8 8 8 1
7 2 2 2 7 7 2 7
6 3 3 3 6 3 6 6
5 4 4 4 4 5 5 5
4 5 5 5 5 4 4 4
3 6 6 6 3 6 3 3
2 7 7 7 2 2 7 2
8 1 8 8 1 1 1 8

将A上所有数字分别按如下算法计算,得到B,其中b(i,j)=n×(a(i,j)-1)。则AT+B为目标幻方
(AT为A的转置矩阵)。如下图用Hire法生成的8阶幻方:
1 63 6 5 60 59 58 8
56 10 11 12 53 54 15 49
41 18 19 20 45 22 47 48
33 26 27 28 29 38 39 40
32 39 38 36 37 27 26 25
24 47 43 45 20 46 18 17
16 50 54 53 12 11 55 9
57 7 62 61 4 3 2 64

Strachey法生成单偶幻方
将n阶单偶幻方表示为4m+2阶幻方。将其等分为四分,成为如下图所示A、B、C、D四个2m+1阶奇数幻方。
A C
D B
A用1至2m+1填写成(2m+1)2阶幻方;B用(2m+1)2+1至2*(2m+1)2填写成2m+1阶幻方;C用2*(2m+1)2+1至3*(2m+1)2填写成2m+1阶幻方;D用3*(2m+1)2+1至4*(2m+1)2填写成 2m+1阶幻方;在A中间一行取m个小格,其中1格为该行居中1小格,另外m-1个小格任意,其他行左侧边缘取m列,将其与D相应方格内交换;B与C接近右侧m-1列相互交换。如下图用Strachey法生成的6阶幻方:
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11

Spring法生成以偶幻方
将n阶双偶幻方表示为4m阶幻方。将n阶幻方看作一个矩阵,记为A,其中的第i行j列方格内的数字记为a(i,j)。
先令a(i,j)=(i-1)*n+j,即第一行从左到可分别填写1、2、3、……、n;即第二行从左到可分别填写n+1、n+2、n+3、……、2n;…………之后进行对角交换。对角交换有两种方法:
方法一;将左上区域i+j为偶数的与幻方内以中心点为对称点的右下角对角数字进行交换;将右上区域i+j为奇数的与幻方内以中心点为对称点的左下角对角数字进行交换。(保证不同时为奇或偶即可。)
方法二;将幻方等分成m*m个4阶幻方,将各4阶幻方中对角线上的方格内数字与n阶幻方内以中心点为对称点的对角数字进行交换。
如下图用Spring法生成的4阶幻方:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

YinMagic构造偶阶幻方
先构造n-2幻方,之后将其中的数字全部加上2n-2,放于n阶幻方中间,再用本方法将边缘数字填写完毕。本方法适用于n>4的所有幻方,我于2002年12月31日构造的数学模型。YinMagic法可生成6阶以上的偶幻方。如下图用 YinMagic法生成的6阶幻方:
10 1 34 33 5 28
29 23 22 11 18 8
30 12 17 24 21 7
2 26 19 14 15 35
31 13 16 25 20 6
9 36 3 4 32 27

魔鬼幻方
如将幻方看成是无限伸展的图形,则任何一个相邻的n*n方格内的数字都可以组成一个幻方。则称该幻方为魔鬼幻方。
用我研究的Horse法构造的幻方是魔鬼幻方。如下的幻方更是魔鬼幻方,因为对于任意四个在两行两列上的数字,他们的和都是34。此幻方可用YinMagic方法生成。
15 10 3 6
4 5 16 9
14 11 2 7
1 8 13 12
罗伯法:
1居上行正中央,依次排开右上方。
右出格时写最左,上出格时写最下.
每逢几个落一行.(几个是几*几的方阵中的几)

⑥ 如何用C语言排列一个3*3宫格,并在每个宫格中插数

可以用二维数组,实现如下:

#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta[3][3],i,j;
printf("请输入9个整数(每个数之间用空格隔开):");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("您输入的数为: ");
for(i=0;i<3;i++)
printf("%d%d%d ",a[i][0],a[i][1],a[i][2]);
system("pause");
return0;
}

⑦ 3乘3的数独规律

数独(九宫格)的规律是每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。

玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。

数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。


解题手法:

依解题填制的过程可区分为直观法与候选数法。直观法就是不做任何记号,直接从数独的盘势观察线索,推论答案的方法。

⑧ 按规律填数3*3方块

比如是1,2,3,4,5,6,7,8,9
先把它们从小到大排列,再按顺序排成3行
1 2 3
4 5 6
7 8 9
中间的不动,周围的顺时针转一下
4 1 2
7 5 3
8 9 6
对角的交换
6 1 8
7 5 3
2 9 4
就得到了

⑨ 如图,有3个3x3的方格表,每个都已经填入了9个整数.如果将表中同一行或同一列的3个数加上相同的整数称为

(1)虽然求出表中九个数的和为45,42,45都是3的倍数,但是这三个表的数字不是按照顺序排列的,所以无论怎么操作都不会使得表中9个数都变为相同的数字;
(2)根据第一问的分析可得:这些数字的排列虽然有一定的规律但是顺序不同,所以无论怎样操作都得不到方格表能够通过若干次操作变得完全一样.