当前位置:首页 > 正文

九宫格java代码思路_java九宫格程序思路

更新时间:2025-01-16 17:15 阅读量:73126

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代码思路相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!