Programmer
Цитата:
Твоё решение не эффективное. Если бы ты так ответил на интервью - хрен бы тебя взяли на работу.
|
Не эффективное - признаю. Немного подумав вечерком, придумал тоже что и
BRULIK, т.е. на этот раз меня опередили.
f00rd
Воронежский Гос. Пед. Университет. Кафедра Информатики.
Оригинальное решение, но можно проще:
Код:
uses
crt;
var
n, m, p, k: byte;
s, d: string;
begin
repeat
clrscr;
write ('n = '); readln (n);
repeat
write ('m = '); readln (m);
if m = 0 then writeln ('error: m = 0!');
until m > 0;
k := n mod m;
s := '';
d := '';
p := 255;
while (p >= length(s)) and (k <> 0) do
if pos(chr(k), d) <> 0 then begin
p := pos(chr(k), d);
s := Copy(s,1,p-1) + '(' + Copy(s,p,length(s)) + ')';
end
else begin
s := s + chr (48 + ((10 * k) div m));
d := d + chr (k);
k := (10 * k) mod m;
end;
writeln ('n/m = ' , n div m, ',',s);
writeln ('press ESC for exit..');
until readkey = #27;
end.
Programmer
Цитата:
А рекурсией слабо лист развернуть ?
|
Не слабо. Люблю рекурсию. Только если задача элементарно решается без нее, то я ее стараюсь и не использовать.

А слабо выполнить эту же задачу в Прологе?