九宫格java代码思路_java九宫格程序思路
java 写一个九宫格的代码!不用很复杂,实现了基本的功能就行! 谢谢大家!我自己写的都晕了
/*
九宫格算法代码 C++版
*/
#include stdio.h
0, 0, 0, 0, 0, 0, 0, 0, 0,
{
int i;
int j;
if(map[i][j])
printf(" %d ", map[i][j]);
}
else
printf(" ");
printf("\n");
int check(int x, int y, int *mark) //check函数为该格子可以选择的数字
int gi;
int gj;
int count = 0;
mark[i] = 0; //初始化
mark[map[x][i]] = 1; //表示该行该数字已存在
mark[map[i][y]] = 1; //表示该列该数字已存在
mark[map[gi + i][gj + j]] = 1; //此循环为表示所在子格子的九个小格子中已存在该数字
if(0 == mark[i]) //如果该数字不存在则++
count++;
return count;
void crack() //?
int mark[10]; //标志数字是否已存在
int min = 10; //记录最少可能数字数
int ci = -1; //ci,cj用来记录最少可能数字的格子所在行列
int cj;
if (map[i][j])
continue; //如果该格子已有数字则跳到下一个格子
int c = check(i, j, mark); //c为该格子可以选择的数字
if (0 == c)
return;
if (c min)
ci = i;
cj = j;
min = c;
if (-1 == ci)
printf("The answer is:\n");
check(ci, cj, mark);//这个语句的作用是把mark这个数组设置成最小可能格子缺少的数字,若缺少则为0
if (mark[i] == 0)
map[ci][cj] = i; //先填入该数字
crack(); //进行判断
map[ci][cj] = 0; //若这个数字不可以得到解则判断下一可能数字(这里类似0-1背包问题)
int main()
printf("The game is:\n");
crack();
return 0;
java编程九宫格问题
采纳哦
java编程题,在九宫格内填入1—9九个数字,使得横竖排的数字相加之和都相等
import?java.util.ArrayList;
import?java.util.Arrays;
public?class?Test1?{
private?static?ArrayListString?arrangeList?=?new?ArrayListString();?
public?static?void?main(String[]?args)?{
char?list[]?=?str.toCharArray();//将字符串转换为字符数组
genernateData(list,?0,?list.length?-?1);//参数为字符数组和0和字符数组最大下标
for(String?str1?:?arrangeList){
arr[k]=Integer.parseInt(str1.substring(k,k+1));
System.out.println(Arrays.toString(arr));
public?static?void?genernateData(char?list[],?int?k,?int?m)?{
if?(k?m)?{
StringBuffer?sb?=?new?StringBuffer();//创建一个StringBuffer对象sb
for?(int?i?=?0;?i?=?m;?i++)?{
sb.append(list[i]);//循环将字符数组值追加到StringBuffer中
arrangeList.add(sb.toString());
}?else?{
for?(int?i?=?k;?i?=?m;?i++)?{
swapData(list,?k,?i);//将下表为k和i的值调换位置
genernateData(list,?k?+?1,?m);
swapData(list,?k,?i);
private?static?void?swapData(char?list[],?int?k,?int?i)?{
char?temp?=?list[k];
list[k]?=?list[i];
list[i]?=?temp;
java设计九宫格设计思路啊,江湖救急请大神指点!
这样和你说吧. 其实这个代码的目的是通用的奇数九宫格.
奇数九宫格先做成 斜线方阵
一开始的 a,b是为了定位 (1) 的格子,
你看不明白,是因为这里带有数学算法.
以上就是白鸿百科网小编为大家整理的九宫格java代码思路相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!