Вопрос № 33335: Здравствуйте, Уважаемые эксперты! Надеюсь на вашу помощь. У меня такая задача. Нужно составить программу на длинную арифметику. Там вводятся длинные числа( 2 числа) до 255 символов и нужно перемножить. Тут вроде алгоритм несложный. Я кажись всё сдела...
Вопрос № 33.335
Здравствуйте, Уважаемые эксперты! Надеюсь на вашу помощь. У меня такая задача. Нужно составить программу на длинную арифметику. Там вводятся длинные числа( 2 числа) до 255 символов и нужно перемножить. Тут вроде алгоритм несложный. Я кажись всё сделал правильно. Считает по-разному : когда правильно, когда нет. Не могли бы вы помочь мне найти ошибку???
Отвечает: Ayl
Здравствуйте, Ильин Сергей Александрович!
После выполнения команды s[k]:=s[k] mod 10; ты теряешь перенос в старший разряд. Надо написать так:
if s[k]>10 then begin
s[k] := s[k] - 10; {сумма двух однозначных чисел не больше 18}
Inc (s[k+1]);
end;
--------- Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Академик)
Отправлен: 16.01.2006, 17:03