卡姿莱特品牌怎么样:“九宫阵”智力游戏。用C++编程

来源:百度文库 编辑:高校问答 时间:2024/04/20 06:19:38
一个9×9方阵,由9个“九宫格”组成,每个九宫格又由3×3共9个小格子组成。请在每个空白小格子里面填上1~9的数字,使每个数字在每个九宫格内以及在整个九宫阵中的每行、每列上均出现一次。
9 4 5 7
3 7 9 4
3 6 8 9
3 1
4 2 3
1 2 3
8 5
6 2 9
2 1 8
详情请参考2005-12-3羊城晚报

123456789
456789123
789123456
231564897
564897231
897231564
312645978
645978312
978312645

程序如下:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int a[9][9];
int i,j,k,l;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
for (l = 0; l < 3; l++)
{
int x = k*3 + l;
x = (x%3) + ((x/3 + j)%3)*3;
x = x/3*3 + ((x + i)%3);

a[i*3 + k][j*3 + l] = x + 1;
}

for (i = 0; i < 9; i++)
{
for (j = 0; j < 9; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}

getchar();
return 0;
}
//---------------------------------------------------------------------------

C++?
C#或者pascal行不?

1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
4 5 6 7 8 9 1 2 3
5 6 7 8 9 1 2 3 4
6 7 8 9 1 2 3 4 5
7 8 9 1 2 3 4 5 6
8 9 1 2 3 4 5 6 7
9 1 2 3 4 5 6 7 8

不知道大九宫图是不是要求每个小九宫图必须满足横竖斜线三个数之和为一十五
小九宫图为
617
852
394
如果小的要成九宫图的话
5必需在中间
则第一行,第一列,最后一行,最后一列不可能出现5