一个3*3的方格钟填入n(n>=10)内的某9个互不相关的整数,使得所有相邻的方格内的整数之和为质数;
我是如下写的,虽然算出来了,可是觉得有些别扭,有谁给指定一下?package test;public class tableTest
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method
// stub
// 表格数组
int[][] table = new int[3][3];
table[0][0] = 10;
table[0][1] = 10;
table[0][2] = 10; table[1][0] = 10;
table[1][1] = 10;
table[1][2] = 10; table[2][0] = 10;
table[2][1] = 10;
table[2][2] = 10; int i = 0;
int j = 0;
int linKey = table[i][j];// 相邻单元
// 进入循环
for (i = 0; i < 3; i++)// 表格行
{
for (j = 0; j < 3; j++)// 表格列
{
System.out.println("*****************计算单元格:" + i + "行" + j
+ "列");
int key = table[i][j];
// 进入循环看那些是相邻单元格 int m = 0;
int n = 0; for (; m < 3; m++)// 表格行
{
for (; n < 3; n++)// 表格列
{
boolean hasPrime = false;
boolean test = (((m - i) | (n - j)) == 1)
& (((m - i) & (n - j)) == 0);
// 是否相邻算法
if ((((m - i) | (n - j)) == 1)
& (((m - i) & (n - j)) == 0))
{ while (linKey < 1024)
{ if (isPrime(key + linKey))// 如果取到相加为质数的数,退出循环
{
table[m][n] = linKey;
hasPrime = true;
linKey++;
break;
}
linKey++; }
System.out
.println("**********************************************************"); System.out.println(table[0][0] + "|" + table[0][1]
+ "|" + table[0][2] + "|");
System.out.println(table[1][0] + "|" + table[1][1]
+ "|" + table[1][2] + "|");
System.out.println(table[2][0] + "|" + table[2][1]
+ "|" + table[2][2] + "|"); } }
n = 0;// 设置成从0列开始
} }
}
System.out
.println("**********************最终结果************************************");
System.out.println(table[0][0] + "|" + table[0][1] + "|" + table[0][2]
+ "|");
System.out.println(table[1][0] + "|" + table[1][1] + "|" + table[1][2]
+ "|");
System.out.println(table[2][0] + "|" + table[2][1] + "|" + table[2][2]
+ "|");
} private static boolean isPrime(int i)
{
// TODO Auto-generated method
// stub
boolean isPrimeNumber = true;
for (int p = 2; p < i; p++)
{
if ((i % p) == 0)
{
isPrimeNumber = false;
} }
return isPrimeNumber;
}
}
我是如下写的,虽然算出来了,可是觉得有些别扭,有谁给指定一下?package test;public class tableTest
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method
// stub
// 表格数组
int[][] table = new int[3][3];
table[0][0] = 10;
table[0][1] = 10;
table[0][2] = 10; table[1][0] = 10;
table[1][1] = 10;
table[1][2] = 10; table[2][0] = 10;
table[2][1] = 10;
table[2][2] = 10; int i = 0;
int j = 0;
int linKey = table[i][j];// 相邻单元
// 进入循环
for (i = 0; i < 3; i++)// 表格行
{
for (j = 0; j < 3; j++)// 表格列
{
System.out.println("*****************计算单元格:" + i + "行" + j
+ "列");
int key = table[i][j];
// 进入循环看那些是相邻单元格 int m = 0;
int n = 0; for (; m < 3; m++)// 表格行
{
for (; n < 3; n++)// 表格列
{
boolean hasPrime = false;
boolean test = (((m - i) | (n - j)) == 1)
& (((m - i) & (n - j)) == 0);
// 是否相邻算法
if ((((m - i) | (n - j)) == 1)
& (((m - i) & (n - j)) == 0))
{ while (linKey < 1024)
{ if (isPrime(key + linKey))// 如果取到相加为质数的数,退出循环
{
table[m][n] = linKey;
hasPrime = true;
linKey++;
break;
}
linKey++; }
System.out
.println("**********************************************************"); System.out.println(table[0][0] + "|" + table[0][1]
+ "|" + table[0][2] + "|");
System.out.println(table[1][0] + "|" + table[1][1]
+ "|" + table[1][2] + "|");
System.out.println(table[2][0] + "|" + table[2][1]
+ "|" + table[2][2] + "|"); } }
n = 0;// 设置成从0列开始
} }
}
System.out
.println("**********************最终结果************************************");
System.out.println(table[0][0] + "|" + table[0][1] + "|" + table[0][2]
+ "|");
System.out.println(table[1][0] + "|" + table[1][1] + "|" + table[1][2]
+ "|");
System.out.println(table[2][0] + "|" + table[2][1] + "|" + table[2][2]
+ "|");
} private static boolean isPrime(int i)
{
// TODO Auto-generated method
// stub
boolean isPrimeNumber = true;
for (int p = 2; p < i; p++)
{
if ((i % p) == 0)
{
isPrimeNumber = false;
} }
return isPrimeNumber;
}
}
解决方案 »
- new Counter()怎么调用toString()
- 初学正则,请一解,很简单的字符串,谢谢了~~
- junit 单体测试的时候,如果要测的方法,如果返回的是String,int什么的,可以直接用assertEquals,如果返回的是一个object,如果测,
- 回车执行Tab功能
- 急!!有一个数组,其中有很多元素的内容是重复的,怎样数出其中重复的数以及其重复的次数。谢谢!!
- 为什么不能用Set<Integer>?
- 如何将oracle数据导入到access?
- 请大家谈谈怎样把UTF-8的XML文件读成流,再改变后输出?
- weblogic中使用java bean 出现以下错误,请教
- 好象在jbuilder4中,没法加入中文注释,对吗?
- 请教关于进程的问题
- 新手提问
http://www.e-move.com.cn/GetParticularServlet?func=DOUCHEBBS&ID=3
private static boolean isPrime(int i)
{
// TODO Auto-generated method
// stub
boolean isPrimeNumber = true;
for (int p = 2; p < Math.sqrt(i); p++)
{
if ((i % p) == 0)
{
isPrimeNumber = false;
} }
return isPrimeNumber;
}
}