收录日期:2020/07/07 01:38:38 时间:2016/06/07 20:54:52 标签:C++ 语言
最近做的一个填字游戏,用1到n*n填充一个n*n矩阵,使其每相邻的两个数之和为质数,当n为3时,求不出一个解法,但当n为4时,却可以,总之,有的数可以,有的数不可以,这是为什么?请指教,
下面有代码,若有时间,请指教,不胜感激.
#include<iostream>
using namespace std;

bool prime(int m)
{
for(int i=2;i<m;++i)
{
if(m%i==0)
{
return false;
}
}

return true;
}

int main()
{
const int max=3;
int row=0,col=0,value=1;
int array[max][max];
array[row][col]=value;
value++;
col=1;
const int num=max*max;

while(true)
{
if(value<=num)
{
bool left=true,up=true;
if(row-1>=0)
{
up=prime(value+array[row-1][col]);
}
if(col-1>=0)
{
left=prime(value+array[row][col-1]);
}

if(!left||!up)
{
value++;
continue;
}

bool equal=false;
for(int i=0;i<row;++i)
{
for(int j=0;j<max;++j)
{
if(value==array[i][j])
{
equal=true;
break;
}
}
if(equal)
break;
}

for(int j=0;j<col;++j)
if(value==array[row][j])
{
equal=true;
break;
}

if(equal==true)
{
value++;
continue;
}

if(left&&up)
{
array[row][col]=value;
if(row==max-1&&col==max-1)
{
for(int i=0;i<=row;++i)
{
for(int j=0;j<=col;++j)
cout<<array[i][j]<<'\t';
cout<<endl;
}
break;
}
if(col==max-1)
{
col=0;
row++;
}
else
col++;
value=1;
continue;
}
}
else
{
if(col==0)
{
col=max-1;
row--;
}
else
{
col--;
}
value=array[row][col];
value++;
}
}

return 0;
}
如果可以有重复的话,岂不是很简单?

2-3-2
3-2-3
2-3-2


这是个三乘三的,相邻的两数合都为质数

另外,楼主你的判断质数的方法太笨了
不仅如此,,程序也错了
真晕,,,下次三思而后行
程序肯定是没对,但数字肯定是不能重复的,每一个数字只能用一次,
呵呵, 程序没看, 不过我知道3的时候肯定不行.
假设有某种排法
x1 x2 x3
x4 o5 x6
x7 x8 x9
因为奇数加奇数等于偶数(此问题里这个偶数是大于2的), 偶数加偶数得到偶数(大于2), 所以相临的数肯定是一奇一偶. 我们用"+" "-"号表示奇偶性, 则上面的排列的奇偶性为:
+ - +
- + -
+ - +
注意到没有: +号比减号多一个, 而1到9中的奇数比偶数多一个, 所以中间的应该是奇数, 但是找不到一个奇数可以放中间的.
3 2 5
 8 1 6
 9 4 7
1+8=9不是质数,

有关程序员的待遇问题 对不起,好久没用了,输出“ok”的语句怎么写 :( Java程序如何与VC程序接口? Jbuilder6 如何 和jrun配合起来? 即jbuilder编译运行即可启动jrun并调试? 制作主页 怎样在背景里面加入声音???(急!!!) 一个很奇怪的问题 用ADO获取当前数据库中的表名?????? 为何在pb7.0中用database将表中的数据导出后再回填表中出现错误??? 如何来实现Java程序如何与VC程序接口 如何用vc把bitmap文件转换成gif 文件? viso2002中的画Uml和Rose有什么不同呢 大家推荐一本用vc++编写游戏软件的书吧 看过《Advanced Windows》(3rd)的请进! 一个大难题!我用iMail做邮件服务但能进信箱,但收不到信也发不出信. 远程连网 数字图像处理的问题 怎样处理大于64k的文档呢? GRNNDIG光盘库的盘点函数是什么呢? 求教微软技术专家:如何在企业邮件服务器上同时实现MSN 请问:我用的dao创建的数据库,在追加数据时怎么转换数据类型啊?我是用的非绑定方式,在线等... 帮我解释一下吧! 谁知道如何编译生成/bin /sbin 中的系统程序吗? 枚举变量! 紧急求救,为什么webmenu控件做中文的菜单不行?请高手指点迷津。 人生之如如何走,房地局,上海市黄页公司,留校做网管之间选择哪一个? 急急!!!请问如何在设置使用java的swing库来编写一个mibtree?本人用的vj来编程的,可是编译老提示找不到swing包!请各位大虾解答,必给 急急,上午就要用,大家幫幫忙了!!!!!! ADO与SQL的连接状态的检测 请问高手:如何编辑一个.exe的可执行文件?