IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> И все же
The Boogie Woogie Blaster
сообщение 25.02.2005 19:46
Сообщение #1


Гость






Код
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
сообщение 25.02.2005 19:52
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


1. что значит
Цитата
неужели это Паскаль?

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

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

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

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

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

p.s. И тему закрыли не для того, что бы вы открыли новую и снова с нарушением правил!!!!!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Guest
сообщение 25.02.2005 19:54
Сообщение #3


Гость






Я уверен найти произведение стозначных чисел можно найти каким-то другим образом, кроме вышеописанного. Вопрос КАКИМ?
 К началу страницы 
+ Ответить 
Altair
сообщение 25.02.2005 20:01
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Вы НЕ ответили на вопрос!

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

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

-------
Вы уместтите 100 значное число в LONGINT ?????
НЕТ!!!!!
Поэтому выход один ИСПОЛЬЗОВАТЬ ДЛИННОЧИСЛЕННУЮ АРИФМЕТИКУ
И этот спосо не сложный, если желать думать!
ВОПРОСЫ ЕСТЬ?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 26.02.2005 8:07
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


можно и другим образом ::
здесь число хранится с начала массива задом наперед ,можно ::
1)с начала массива в прямом порядке ,но тогда считывание дольше будет
2)с конца массива в прямом и обратном порядках ,
а смысл?
По сути это один и тот-же алгоритм будет ,только именно так наиболее эффективно.

ЗЫ.
можно еще на асме написатьsmile.gif


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 26.02.2005 8:09
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


чуть не забыл ,можно еще новую архитектуру разработать с аппаратной поддержкой длинных чисел.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"