问题描述
解决方案
Java 8支持Stream API和Lambda表达式,所以和C#写起来几乎是一样的。
解决方案二:
只要穷举即可。http://bbs.csdn.net/topics/390039859
解决方案三:
请指教
/*
* 文 件 名: A.java
* 版 权: . Copyright YYYY-YYYY, All rights reserved
* 描 述: <描述>
* 修 改 人: ShangZhang
* 修改时间: 2015-2-22
* 跟踪单号: <跟踪单号>
* 修改单号: <修改单号>
* 修改内容: <修改内容>
*/
/**
* <一句话功能简述>
* <功能详细描述>
*
* @author ShangZhang
* @version [版本号, 2015-2-22]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class A
{
int[] sudu = new int[81];
/**
*
* 数独规则,检查是否重复
* <功能详细描述>
*
* @param a 将插入数字
* @param i 将插入数字位置
* @return
* @see [类、类#方法、类#成员]
*/
public boolean test(int a, int i)
{
// TODO数独规则
return true;
}
/**
* 插入 下一个空白<功能详细描述>
*
* @return 插入成功
* @see [类、类#方法、类#成员]
*/
public boolean insert()
{
int[] a = sudu;
for (int i = 0; i < 81; i++)
{
if (a[i] == 0) // 下一个空白
{
for (int j = 1; j <= 9; j++) // 依次尝试 1-9
{
if (test(j, i)) // 检查是否符合
{
a[i] = j; // 符合要求,插入数字
if (!insert()) // 下一个空白位置1-9尝试均不符合,当前空白尝试下一个数字
{
continue;
}
}
else
// 不符合尝试下一数字
{
continue;
}
}
a[i] = 0; // 清空当前所填数字
return false; // 1-9尝试均不符合,返回失败
}
}
return true; // 插入结束返回成功
}
}
时间: 2024-08-21 13:45:47