9.29.2017

In số hình xoắn ốc

Viết chương trình in ra các số nguyên từ 1 đến N^2 theo hình xoắn ốc với N được nhập vào từ bàn phím.
 Ví dụ, với N=5 ta có:
       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

                                              Giải

Var 
       i,n,ng,d,j,dem,x,y,a,b,kt: integer;
       doc,ngang: boolean;
Begin
Write('Nhap n: '); Readln(n);
x:=10; y:=10; doc:=false; ngang:= true; a:=3; b:=3;kt:=1;dem:=1;j:=1;ng:=n;d:=n-1;i:=1;
Repeat
   If ngang Then
       If dem <= ng Then
           begin
                 dem:=dem+1; x:=x+a;
                 gotoxy(x,y);
                 Write(i); i:=i+1;
            end
       Else
           begin
               ngang:=false; doc:= true;             
               if a=3 then a:=-3
               else a:=3; dem:=1; ng:=ng-1;
           end;
   If doc Then
       If dem <= d Then
           begin
               dem:=dem+1; y:=y+b; gotoxy(x,y); Write(i); i:=i+1;
           End
       Else
            begin
                doc:=false; ngang:=true; if b=-3 then b:=3 else b:=-3; dem:=1;d:=d-1;
            end;
Until i=n*n+1;
   Readln;
END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét