Viết chương trình con in ra số đảo ngược của 1 số. Ví dụ: Số nhập vào là 1234 => số đảo ngược là 4321. Cảm ơn các pác nhìu nhìu. Mong nhận được lời giải sớm nhất
Viết chương trình con in ra số đảo ngược của 1 số. Ví dụ: Số nhập vào là 1234 => số đảo ngược là 4321. Cảm ơn các pác nhìu nhìu. Mong nhận được lời giải sớm nhất
var n:integer;
begin
n:=1234;
pereat
write(n mod 10);
n:=n div 10;
Until n=0;
end.
trên là cái sườn cơ bản nhất thôi, nếu muốn lấy nó ra dùng vào việc khác thì bạn tự thêm vào việc (nhân thêm 1000 hay 100.....theo biến đếm nào đó {tự thêm biến đếm}), hay nếu thích thì bạn "quăng" nó vào cái procedure hay Function là xong thôi, chúc bạn thành công.
cách 2: biến nó thành String rồi đảo ngược rồi VAL()...xong.
function dao( s:string):string;
var i:integer; s1:string;
begin
s1:=''; for i:=1 to length (s) do s1:=s[i]+s1; dao:=s1;
end;
function dao_so(so:longint):longint;
var s: string; code:integer;
begin
str(so,s);
s:=dao(s);
val (s,so,code);
if code<>0 then writeln(' toi roi.');
dao_so:=so;
end;
Nếu dữ liệu vào từ file thì có thể nhập các số vào 1 mảng kiểu char và in theo chiều ngược lại.
Code:program daoso; uses crt; var i : integer; s:string; begin clrscr; write('n = '); readln(s);writeln('Dao cua n : '); for i:=length(s) downto 1 do begin write(s[i]); end; readln; end.
Được sửa bởi QuyNam lúc 20:21 ngày 17-04-2008
cần gì phải phức tạp thế, theo mình thì chuyển số thành chuỗi, sau đó viết chuổi theo thứ tự ngược lại, rồi lại dùng hàm val để chuyển chuổi thành số. Thuật toán này trong pascal của Quách Tuấn Ngọc hình như cũng có đấy.
Cái cách 1 mà anh/chị thuonghcm đó thì có vẻ là vẫn cho ra kết quả đúng về mặt hị̀nh thức nhưng thực chất bên trong thì số xuất ra chỉ là các kí tự được viết lần lượt sát nhau mà thôi chứ không phải là 1 số mà là tập hợp các số được viết sát nhau
VD: nhập 1234
xuất 4321
Ở đây không phải số 4321 mà là các số 4, 3, 2, 1 được viết sát nhau.
Xin mọi người cho ý kiến về bài viết của em.
Add nick: hung06061995 để cùng thảo luận
éc...dễ quá mà hong bít làm à???
so:=0;
repeat
so:=so*10 +n mod 10;
n:=n div 10
until n=0;
write('KQ LA; ', so);
Vay duoc chua???????
Bookmarks