1到9九宫格横竖斜都等于15

如题所述

第一行:4、9、2

第二行:3、5、7

第三行:8、1、6

首先中间的数是最主要的,因为会有4组数用到它,这样数在1~9中,只有1个那就是5,这样就可以确定周围一圈的数全是相加等于10的。确定好了组合就是4和6,1和9,2和8,3 和7,把他们排列组合,看边数相加等于15就可以。

扩展资料:

第一种是在在3×3方格盘上,是把1至8八个小木块随意摆放,每一空格其周围的数字可移至空格。玩者要将小木块按12345678的顺序重新排好,以最少的移动次数拼出结果者为胜。

第二种玩法如九宫格算术游戏玩法,推动木格中8个数字排列,横竖都有3个格,使每行、每列两个对角线上的三数之和都等于15。在计算的同时,还必须思考怎么把数字方块推动到相对应的位置上,这个游戏不仅仅考验人的数字推理能力,也同时考验了人的思维逻辑能力。

参考资料来源:百度百科-九宫格

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
射雕英雄传中 有啊,呵呵,戴九履一,左三右七,二四为肩,六八为足。具体为:
4 9 2;
3 5 7;
8 1 6。像这样的左右上下颠倒都是可以的本回答被提问者采纳
第2个回答  2021-02-08
我用C++枚举了一下
代码如下
#include <iostream>
using namespace std;

/*
C++求和十五
* * *
* 5 *
* * *
*/

bool cmpDeposit(int a[9],int b) {
//比对数值是否使用
for (int i = 0; i < 9; i++) {
if (a[i] == b) {
return false;
}
}
return true;
}

void empArr(int* a, int b) {
//从第几位清空使用数值
for (int i = b; i < 9; i++) {
a[i] = 0;
}
}

bool cmpArr(int a[][3]) {
//判断结果
for (int i = 0; i < 3; i++) {
if (a[i][0] + a[i][1] + a[i][2] != 15) {
return false;
}

if (a[0][i] + a[1][i] + a[2][i] != 15) {
return false;
}
}

if (a[0][0] + a[1][1] + a[2][2] != 15) {
return false;
}

if (a[0][2] + a[1][1] + a[2][0] != 15) {
return false;
}

//如果为真,则表示枚举成立
return true;
}

int main(void) {

clock_t startTime, endTime;
startTime = clock();//计时开始

int disc[3][3] = { //初始化棋盘
{0,0,0},
{0,5,0},
{0,0,0},
};

int sum[9] = { 0 }; //九位不同的数值

for (int i = 1; i < 10; i++) {
//枚举中间横向
sum[1] = i;
sum[2] = (15 - i - 5);
disc[1][0] = sum[1];
disc[1][2] = sum[2];

for (int ii = 1; ii < 10; ii++) {
//枚举中间纵向
if (cmpDeposit(sum, ii)) {
sum[3] = ii;
sum[4] = (15 - ii - 5);
disc[0][1] = sum[3];
disc[2][1] = sum[4];

for (int iii = 1; iii < 10; iii++) {
//枚举左边纵向
if (cmpDeposit(sum, iii)) {
sum[5] = iii;
sum[6] = (15 - iii - 5);
disc[0][0] = sum[5];
disc[2][2] = sum[6];

for (int iiii = 1; iiii < 10; iiii++) {
//枚举右边纵向
if (cmpDeposit(sum, iiii)) {
sum[7] = iiii;
sum[8] = (15 - iiii - 5);
disc[0][2] = sum[7];
disc[2][0] = sum[8];

//判断数组是否正确
if (cmpArr(disc)) {
//输出得到的结果
for (int i = 0; i < 3; i++) {
cout << disc[i][0] << disc[i][1] << disc[i][2] << endl;
}
cout << endl;
}
}
empArr(sum, 7);
}
}
empArr(sum, 5);
}

}
empArr(sum, 3);
}

empArr(sum, 1);

}

cout << "运算时间: " << (double)(clock() - startTime) / CLOCKS_PER_SEC << "s" << endl;
}
得到了八种结果 分别是
834 | 672 | 816 | 492 | 618 | 294 | 438 | 276
159 | 159 | 357 | 357 | 753 | 753 | 951 | 951
672 | 834 | 492 | 816 | 294 | 618 | 276 | 438
第3个回答  2010-04-21
5放中间,对角填1,9和3,7,然后再将偶数填进去就行了
第4个回答  2010-04-21
4 9 2
3 5 7
8 1 6
相似回答