Помощь - Поиск - Пользователи - Календарь
Полная версия: И все же
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
The Boogie Woogie Blaster
Код
procedure MulLongShort(a:Plong;const k:longint;c:Plong);
var i:integer;
begin
 fillchar(c^,sizeof(c^),0);
 if k=0 then inc(c^[0]) else
    begin
       for i:=1 to a^[0] do
          begin
             c^[i+1]:=(longint(a^[i])*k+c^[i]) div _osn;
             c^[i]:=(longint(a^[i])*k+c^[i]) mod _osn;
          end;
       if c^[a^[0]+1]>0 then c^[0]:=a^[0]+1 else c^[0]:=a^[0];
    end;
end;

при 0<=k<=_osn гарантированно работает правильно ,
при _osn+1<=k<=67479 вроде тоже правильные ответы выдает (проверьте кто нить при всех ли)
при k>=67480 во время исполнения проги возникает range check.

Бог ты мой неужели это Паскаль? blink.gif Неужели эту задачу нельзя решить как-нибудь попроще?
Altair
1. что значит
Цитата
неужели это Паскаль?

2.
Цитата
Неужели эту задачу нельзя решить как-нибудь попроще?

Эту задачу следует решить так (во всяком случае здравый смысл подсказывает)
из строки перевести число в длинное число (длинночсиленная арифметика)и делать с ним что угодно.

Прошу ответить на 1 вопрос.

------------------------------------------

ЧТО НЕ ПОНЯТНО?
Есть конкретные вопросы?
Если нет, "идите и читайте учебник!!!" (© Учитель мой так говорил)

p.s. И тему закрыли не для того, что бы вы открыли новую и снова с нарушением правил!!!!!
Guest
Я уверен найти произведение стозначных чисел можно найти каким-то другим образом, кроме вышеописанного. Вопрос КАКИМ?
Altair
Вы НЕ ответили на вопрос!

Цитата
Я уверен

Откуда уверенность если вы ничего не знаете?

-------
Вы уместтите 100 значное число в LONGINT ?????
НЕТ!!!!!
Поэтому выход один ИСПОЛЬЗОВАТЬ ДЛИННОЧИСЛЕННУЮ АРИФМЕТИКУ
И этот спосо не сложный, если желать думать!
ВОПРОСЫ ЕСТЬ?
virt
можно и другим образом ::
здесь число хранится с начала массива задом наперед ,можно ::
1)с начала массива в прямом порядке ,но тогда считывание дольше будет
2)с конца массива в прямом и обратном порядках ,
а смысл?
По сути это один и тот-же алгоритм будет ,только именно так наиболее эффективно.

ЗЫ.
можно еще на асме написатьsmile.gif
virt
чуть не забыл ,можно еще новую архитектуру разработать с аппаратной поддержкой длинных чисел.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.