Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Số được tạo từ các chữ số 4 và 7 gọi là số may mắn.
Các số tạo thành bởi thứ tự sau: 4 7 44 47 77 444 ...
Đề: Tìm số may mắn thứ K
var n, dodai, dMax:int64;
function luythua(n:byte):int64; // OK
begin
if (n=1) then exit(2)
else exit(luythua(n-1)*2);
end;
function tongluythua(n:byte):int64; //OK
begin
exit(luythua(n+1)-2);
end;
function dodaichuoi(n : int64):byte; //OK
var dodai:byte;
begin
dodai := 1;
while (tongluythua(dodai) < n) do
begin
inc(dodai);
end;
exit(dodai);
end;
// Main
begin
write('Nhap vi tri so can tim: '); readln(n);
dodai := dodaichuoi(n);
n := n-tongluythua(dodai-1); // vi tri trong doan
while (dodai>=1) do
begin
dMax := tongluythua(dodai)-tongluythua(dodai-1); // do dai cua doan
if (n>(dMax div 2)) then
begin
write(7);
n := n-(dMax div 2);
end
else
begin
write(4);
end;
dec(dodai);
end;
readln;
end.