Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2008, 20:11   #1
RAVAL))
Пользователь
 
Регистрация: 06.06.2008
Сообщений: 44
По умолчанию Длинная арифметика (нужна помощь)

Вот задача:
Дано :
а.b (до 1000 цифр)
Вывести сумму двух чисел;
Пр. вв
2
2
Пр выв.
4

Последний раз редактировалось RAVAL)); 14.06.2008 в 21:06.
RAVAL)) вне форума Ответить с цитированием
Старый 14.06.2008, 20:21   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Какой подробный вопрос...... Даже незнаю что спросить в первую очередь "Какой язык" или "В чём возникают трудности..."
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 14.06.2008, 21:08   #3
RAVAL))
Пользователь
 
Регистрация: 06.06.2008
Сообщений: 44
По умолчанию

Ну если я создал тему в разделе паскаль, то зачем спрашивать на каком языке я программирую.
Я ещё если быть внимательным, то можно замети какие ограничения.
Если слаживать два числа например:
640654065464654054035404504504
540545454545444554504

то а+b работать естественно не будет!!!

Вот я и прошу написать алгоритм решения данной задачи…
RAVAL)) вне форума Ответить с цитированием
Старый 14.06.2008, 21:11   #4
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

создаешь 2 массива, к примеру по 50 элементов. Каждый элемент - от 0 до 999 включительно. И просто складываешь, как в столбик.
0й с 0м
1й с 1м

Затем пробегаешь по результируещиму массиву с конца, смотришь - если число >1000 - то вычитаешь, сколько надо тысяч и это число прибавляешь к предыдущему элементу в массиве.

Алгоритм примерно такой
Olympian вне форума Ответить с цитированием
Старый 14.06.2008, 22:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

рекомендую пользоваться поиском на форуме.
вот, нашёл обсуждения, оба раза давали ссылку:
http://comp-science.narod.ru/DL-AR/dl-ar.html ЗАДАЧИ НА ДЛИННУЮ АРИФМЕТИКУ

p.s. где-то была готовая библиотечка на Pascal работы с длинной арифметикой. нужна?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2008, 22:40   #6
begemotikdin
Пользователь
 
Аватар для begemotikdin
 
Регистрация: 17.12.2007
Сообщений: 36
По умолчанию

Привет!!! Вот посмотри надеюсь поможет!!!
Вложения
Тип файла: rar СЛОЖЕНИЕ.rar (418 байт, 45 просмотров)
begemotikdin вне форума Ответить с цитированием
Старый 25.10.2008, 14:14   #7
JOHNWTF
Новичок
Джуниор
 
Регистрация: 25.10.2008
Сообщений: 1
По умолчанию

Цитата:
Сообщение от begemotikdin Посмотреть сообщение
Привет!!! Вот посмотри надеюсь поможет!!!
К сожалению она не работает.. на 3 тесте пишет неправильный ответ!
JOHNWTF вне форума Ответить с цитированием
Старый 25.10.2008, 15:13   #8
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Как не странно, но я впервые пишу программу такого рода
Код:
uses crt;

var
  s1,s2,s3: string;
  mem,i,l,c: integer;

begin
  writeln('Enter first numb '); readln(s1);
  writeln('Enter second numb '); readln(s2);
  mem:=0;
  s3:='';
  
  if length(s1)>length(s2) then l:=length(s1)
  else                          l:=length(s2);
  
  if length(s1)>length(s2) then
    for i:=length(s2) to l-1 do
      Insert('0',s2,1);
      
  if length(s1)<length(s2) then
    for i:=length(s1) to l-1 do
      Insert('0',s1,1);
      
  for i:=l downto 1 do
  begin
    c:=strtoint(s1[i])+strtoint(s2[i])+mem;
    mem:=c div 10;
    insert(inttostr(c mod 10),s3,1);
  end;
  if mem>0 then
    insert('1',s3,1);
    
  write(s3);
  readln;
end.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь Caragius Паскаль, Turbo Pascal, PascalABC.NET 8 08.04.2010 17:29
Нужна помощь с SSL Аббат Свободное общение 4 31.08.2009 23:17
ргр по си, нужна помощь SadMan Помощь студентам 0 03.06.2008 20:14
Нужна помощь!!! Anil Помощь студентам 0 04.12.2007 17:32
Длинная арифметика DmT Помощь студентам 2 06.10.2007 22:43