收录日期:2019/12/09 08:19:42 时间: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不是质数,

求DHTML的API之类的东西下载 bak 文件的还原 请撒哈拉大哥进来.... 28.8kbps 上网发贴比2m adsl快 严重病毒 请问TWinSocketStream.read(strbuf,100)能读strbub中的回车符吗? TTS技术问题 DataList自动增长,覆盖下面控件,应该如何解决 请指教 谢谢 存储过程返回值问题 大家帮帮我啊!! 有关dll 熟悉事件机制的朋友过来看看!!! 光驱不工作了,怎么一回事情????? 批量固定行数据窗口打印问题,非高手莫入 又是数组的问题,大家看看 98 用瑞星 杀毒杀到一点就死了 【HELP】如何用正则判断用户输入的是中文还是英文? 请问ADO怎么样连接有密码的ACCESS数据库? 倒!不定时的\"无法验证数据\"的错误,是不是虚拟主机有问题,在本地是不会的 大家老说郁闷,几天升星了,高兴一下,散分200!!!!!!!!!!!!! 关于setString()的问题 JP 钓鱼 岛 tw 怎么才能成为最优秀的程序员 求助这个网页该怎么设计? [求助]怎样修改窗口的标题名??(非MFC) 请教:dataset的EnforceConstraints(约束)属性 谢谢大家的关心,虽然妹妹没有原谅我,但是我还是希望她能够找到她真正喜欢的生活 求书!那位大哥有《linux下的C编程》 oracle自身有没有统计哪个用户在一个时间段内登陆多少次的功能? vsflexgrid数据计算问题?