PDA

View Full Version : Bài toán tìm số Pascal



Eithree
24-06-2010, 21:08
Em có bài toán như sau:
Tìm số tự nhiên có 5 chữ số mà khi nhân số đó với 4 sẽ ra kết quả là 1 số mới với thứ tự các chữ số đảo ngược thứ tự với số ban đầu.
Tổng quát: abcde* 4= edcba
Làm toán học thì hơi lâu. Em nghĩ ra thuật toán sau:
Số này tối đa chỉ có thể tới 99999 div 4 = 24999, tối thiểu là 10000.
=> Ta duyệt x từ 10000 đến 24999, in x cùng x*4. Sau đó dùng phép kiểm tra xâu đảo ngược, xem x với x*4 có phải xâu đảo ngược của nhau không, nếu đúng thì in ra màn hình cặp số đó, chính là kết quả bài toán.
Nhưng em làm thì lại không được. Các pro Pascal giúp e với.

nirvanat
25-06-2010, 08:01
ý tưởng bạn làm đúng rồi đó. bạn kiểm tra code xem sai chỗ nào không. hay là chỗ khai báo biến ák..
Đây là bài làm của mình nàk


var i:word; st,st2:string;
t:longint;
Function doixau(s:string):string;
var s2:string;i:byte;
Begin
s2:='';
For i:=length(s) downto 1 do s2:=s2+s[i];
doixau:=s2;
End;
BEGIN
For i:=10000 to 24999 do
Begin
t:=1;
t:=t*i*4;
str(i,st2);
str(t,st);
If doixau(st)=st2 then writeln(i);
End;
readln;
End.

Eithree
25-06-2010, 21:16
Thank. Mình đã test lại chương trình, đúng là có lỗi thật :D

nirvanat
26-06-2010, 16:31
Hê hê. kinh nghiệm cho bạn và mọi người luôn đó