八数码难题有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态1 2 34
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/04 09:32:35
八数码难题
有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态
1 2 3
4 5 6
7 8 0
到达目标状态步数最少的解.
最好用c
有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态
1 2 3
4 5 6
7 8 0
到达目标状态步数最少的解.
最好用c
输入方法:
例如:
input(从键盘):
1 2 3 7 4 5 8 0 6
output(向屏幕):
Step:1
1 2 3
4 5 6
7 8 0
Step:2
1 2 3
4 5 0
7 8 6
Step:3
1 2 3
4 0 5
7 8 6
Step:4
1 2 3
0 4 5
7 8 6
Step:5
1 2 3
7 4 5
0 8 6
Step:6
1 2 3
7 4 5
8 0 6
我的程序:
#include
#include
#include
struct bsm
{
int s[9];
int prep,pos;
} ar1[1000],ar2[1000];
int h1,r1,h2,r2,step;
struct bsm p;
int pd(int k)
{
int i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for (i=0;i
例如:
input(从键盘):
1 2 3 7 4 5 8 0 6
output(向屏幕):
Step:1
1 2 3
4 5 6
7 8 0
Step:2
1 2 3
4 5 0
7 8 6
Step:3
1 2 3
4 0 5
7 8 6
Step:4
1 2 3
0 4 5
7 8 6
Step:5
1 2 3
7 4 5
0 8 6
Step:6
1 2 3
7 4 5
8 0 6
我的程序:
#include
#include
#include
struct bsm
{
int s[9];
int prep,pos;
} ar1[1000],ar2[1000];
int h1,r1,h2,r2,step;
struct bsm p;
int pd(int k)
{
int i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for (i=0;i
有一串数字,任何相邻的4个数码之和都是20,从左往右起第102,1043,128个数码分别是1,3,9,求第一个数码.
由数字0,1,2,3,4,5组成没有重复数字的五位数,其中个位数字小于十位数字的数有多少个谢谢了,
由数字0、1、2、3、4组成无重复数字的五位数,其中奇数有______个.
用6个数码1和4个数码0组成一个二进制的十位数,其中的奇数有几个,
用1,2,3,4这四个数码可以组成24个没有重复数字的四位数,其中能被11整除的有哪些?
用1,2,3,4这四个数码可以组成24个没有重复数字的四位数,其中能被22整除的有哪些?
一个七位数,它由数字0、1、2、3、4组成,相邻位置上的数字不同,并且个位数字是2,这样的七位数有多少个
选择,一个十位数字为0的三位数,它恰好等于各位数字和的m倍,交换它的百位数字与个为数字位置,
用数码0,1,2,3,4,可以组成多少个小于2000的没有重复数字的自然数
用数字0,1,2,3组成数字可以重复的四位数,其中有且只有一个数字出现两次的四位数的个数为?
山数码0,1,2,3,4,5,6能组成若干无重复数字的七位数,其中有55的倍数,
计算机中的最小存储单位是位,位有0和1两个状态.一个字节由8个位构成.利用固定位数的存储空间每位不同的状态可以记忆数字.