Другие языки программирования и технологии

даю 10 баллов за задачу в Турбо паскале

Даны натуральные A и B. Необходимо написать программу, вычисляющую частное и остаток при делении A на B, не используя DIV и MOD.
алгоритм: в цикле уменьшаешь A на B, при каждом проходе цикла переменную-счётчик (инициализированную нулём) увеличиваешь на 1 и проверяешь, не стало ли A меньше B. если стало - выходишь из цикла; в переменной-счётчике у тебя частное, в A - остаток от деления.
НЕ
Николай Емеров
23 938
Лучший ответ
Частное := Trunc(A/B);
Остаток := A - Частное*B;

А хотишь расскажу как это можно на асме сделать ?
Сергей Емелин
Сергей Емелин
13 526
Проще ведь с ними DIV и MOD
k:=0;
while a>b do begin
a:=a-b;
k:=k+1;
end;

после того, как цикл проработает, "а" будет остатком, а "k" частным =)
Алгоритм основан на методе деления "столбиком".

var
a, b: integer;
m, d, bb: integer;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
if b = 0 then
writeln('Error: division by zero')
else
begin
d := 0;
m := a;
bb := b;
while (m >= bb) and (bb > 0) do
bb := bb shl 1;
bb := bb shr 1;
while bb >= b do
begin
d := d shl 1;
if m >= bb then
begin
dec(m, bb);
inc(d)
end;
bb := bb shr 1;
end;
writeln(a, ' div ', b, ' = ', d, ' ', a, ' mod ', b, ' = ', m)
end;
readln
end.
Oleg Vid
Oleg Vid
1 525
а на с++ или java ни нужно?