C++编程,用A*算法重排九宫图

C++编程,用A*算法重排九宫图,第1张

昏, 那个不叫九宫图吧, 那个是螺旋矩阵, 比九宫图简单多了:

#include <iostream>

#include <cstring>

using namespace std;

const int size = 200;

int iM2Dimen[size][size];

#define M iM2Dimen

int Digit(int n)

{

int x = 0;

do{

++x;

n /= 10;

}while(n != 0);

return x;

}

void Print(int n)

{

int width = Digit(nn);

for(int i = 0; i < n; ++i)

{

for(int j = 0; j < n; ++j)

{

coutwidth(width);

cout << M[i][j] << ' ';

}

cout << endl;

}

}

void Helix(int n)

{

memset(M, 0, sizeof M);

int iR = -1, iC = -1;

int x = n;

// 把i <= nn 改成i < nn 看看

for(int i = 1, j = 0; i <= nn; ++i)

{

for(++iR, ++iC, j = 0; j < x; ++iC, ++i, ++j)

M[iR][iC] = i;

if(i > nn)break;

--x;

for(--iC, ++iR, j = 0; j < x; ++iR, ++i, ++j)

M[iR][iC] = i;

if(i > nn)break;

for(--iR, --iC, j = 0; j < x; --iC, ++i, ++j)

M[iR][iC] = i;

if(i > nn)break;

--x;

for(++iC, --iR, j = 0; j < x; --iR, ++i, ++j)

M[iR][iC] = i;

if(i > nn)break;

--i;

}

Print(n);

}

int main()

{

Helix(3);

cout << endl;

Helix(4);

cout << endl;

Helix(5);

cout << endl;

}

测试结果:

1 2 3

8 9 4

7 6 5

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

①:设圆心为x1、y1,求得圆心与坐标点x、y之间的距离L=sqrt((x-x1)(x-x1)+(y-y1)(y-y1)),然后再判断L是否大于1并且小于2,若判断结果为真,则输入的坐标点x,y在圆环内部。

②:问题:输入一个数n,输出n^2数阵,数阵为数字漩涡排列。

例:输入1,输出 1

输入2,

输出

1 2

3 4

输入3

输出

1 2 3

8 9 4

7 6 5

输入4

输出

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

是这个题么?

program hhs;

var

a,b,t,x:integer;

s:array[01000,01000]of integer;

begin

readln(x);

for a:=1 to 6 do begin

s[0,a]:=1;

s[x+1,a]:=1;

s[a,0]:=1;

s[a,x+1]:=1;

end;

t:=1;a:=1;b:=1;

while t<=xx do begin

s[a,b]:=t;

if (s[a-1,b]<>0)and(s[a+1,b]=0)and(s[a,b+1]<>0)then a:=a+1

else

if (s[a,b-1]=0)and(s[a+1,b]<>0)and(s[a,b+1]<>0)then b:=b-1

else

if (s[a-1,b]=0)and(s[a+1,b]<>0)and(s[a,b-1]<>0)then a:=a-1

else b:=b+1;

t:=t+1

end;

for a:=1 to x do begin

for b:=1 to x do

write(s[a,b]:5);

writeln;

end;

end

以上就是关于C++编程,用A*算法重排九宫图全部的内容,包括:C++编程,用A*算法重排九宫图、螺旋矩阵的三种算法 Pascal、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10165989.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存