//
you're reading...
Bài tập huấn luyện, Chủ đề đệ quy

Đệ quy – Bài tập huấn luyện: Điền số

[Latex online] [Pascal online] []


Đề bài


Điền các số từ 1 đến N*N vào các ô của hình vuông N*N (N<=5) ô vuông theo qui cách  :

Nếu ô (x,y) có số k thì hoặc ô (x+2,y-2) hoặc ô (x+2,y+2) hoặc ô (x-2,y+2) hoặc ô (x-2,y-2) hoặc ô (x+3,y) hoặc ô (x-3,y) hoặc ô (x,y+3) hoặc ô (x,y-3)  chứa số K+1 .

Nhập từ bàn phím số N và toạ độ x,y của ô xuất phát

Hiện các cách sắp xếp theo dạng ma trận vuông trên màn hình , và tổng số cách sắp xếp .


Hướng dẫn


[Tải chương trình]

Uses Crt;
Const N = 5;
SqrN = N*N;
C : Array[1..8] of Integer = (-3,3,0,0,2,-2,2,-2);
D : Array[1..8] of Integer = (0,0,3,-3,2,-2,-2,2);
Type K = Array[1..N,1..N] of Byte;
Var A : K;
Sn : Integer;
x,y : Byte;
Procedure Khoitri;
Begin
Writeln(‘Nhap toa do o xuat phat : ‘);
Write(‘Dong y = ‘); Readln(y);
Write(‘Cot x = ‘); Readln(x);
FillChar(A,Sizeof(A),0);
Sn := 0;
A[x,y] := 1;
End;
Procedure Hien;
Var i,j : Byte;
Begin
Inc(sn);
Writeln(‘Nghiem thu ‘,sn,’ : ‘);
For i:=1 to N do
Begin
For j:=1 to N do Write(A[i,j]:3);
Writeln;
End;
End;
Procedure Vet(y,x : Byte);
Var k : Byte;
Function Chapnhan(x,y,k : Byte) : Boolean;
Begin
If (x+C[k]>0) and (x+C[k]<N+1) and (y+D[k]>0) and (y+D[k]<N+1) and (A[y+D[k],x+C[k]]=0) then
Chapnhan := True Else Chapnhan := False;
End;
Begin
For k:=1 to 8 do
Begin
If chapnhan(x,y,k) then
Begin
A[y+D[k],x+C[k]] := A[y,x] +1;
If A[y+D[k],x+C[k]]< sqrN then
Vet(y+D[k],x+C[k]) Else Hien;
A[y+D[k],x+C[k]] := 0;
End;
End;
End;
BEGIN
Clrscr;
Khoitri;
Vet(x,y);
If sn=0 then Writeln(‘Khong co nghiem ‘)
Else Writeln(‘So nghiem : ‘,sn);
Readln;
END.

Advertisements

About pascalteacher

Trang thông tin Toán học và Tin học

Thảo luận

Không có bình luận

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

Các tác giả

Chuyên mục

Tháng Mười Một 2016
H B T N S B C
« Th10   Th12 »
 123456
78910111213
14151617181920
21222324252627
282930  

NCT Computer

Flickr Photos

Thống kê

  • 254,189 lượt xem

pascalteacher.nct@gmail.com


Trang huấn luyện học sinh giỏi Tin học

%d bloggers like this: