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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2017, 20:08   #1
anasttb
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 32
По умолчанию Сложить два 250-ти разрядных числа.

Через строки.
anasttb вне форума Ответить с цитированием
Старый 24.02.2017, 20:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

и? как пробовали? какие ошибки выдал компилятор?
p51x вне форума Ответить с цитированием
Старый 24.02.2017, 20:30   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от anasttb Посмотреть сообщение
Через строки.
например, http://www.programmersforum.ru/showp...6&postcount=16

см.
function Summa(x, y: string): string;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.02.2017, 22:32   #4
SASFM
Форумчанин
 
Аватар для SASFM
 
Регистрация: 26.03.2015
Сообщений: 191
По умолчанию

Цитата:
Сообщение от anasttb Посмотреть сообщение
Через строки.
Код:
var s1,s2,sum: string;
    cs1,cs2,ost,x,i:integer;
begin
  readln(s1);
  read(s2);
  for i:=length(s1) downto 1 do
  begin
    cs1:=strtoint(s1[i]);
    cs2:=strtoint(s2[i]);
    x:=(cs1+cs2+ost) mod 10;
    ost:=(cs1+cs2+ost) div 10;
    sum:=inttostr(x)+sum;
  end;
  write(sum);
end.
Ну как то так

Работает, если длина строки ровны
Моя родина там, где мой компьютер
SASFM вне форума Ответить с цитированием
Старый 24.02.2017, 23:22   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Работает, если длина строки ровны
А '9' и '9' пробовал сложить? А строки не равной длины можно слева нулями выровнять
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.02.2017, 05:21   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
function SlozhenieChisel(chislo1, chislo2: string): string;
 var i, dlina: integer;
     p: array of byte;
 begin
    dlina:=Length(chislo1);
    If Length(chislo2)>dlina then
       dlina:=Length(chislo2)+1 else
       dlina:=dlina+1;
    While Length(chislo1)<dlina do
       Insert('0', chislo1, 1);
    While Length(chislo2)<dlina do
       Insert('0', chislo2, 1);
    SetLength(p, dlina);
    Result:='';
    For i:=0 to dlina-1 do
       p[i]:=0;
    For i:=dlina downto 2 do
    begin
       p[i-1]:=p[i-1]+StrToInt(chislo1[i])+StrToInt(chislo2[i]);
       If p[i-1]>=10 then
       begin
          p[i-2]:=p[i-1] div 10;
          p[i-1]:=p[i-1] mod 10;
       end;
    end;
    For i:=0 to dlina-1 do
       Result:=Result+IntToStr(p[i]);
    While (Result<>'') and (Result[1]='0') do
       Delete(Result, 1, 1);
 end;
http://newerow1989.narod.ru/publ/slo...hisel/1-1-0-27
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 26.02.2017, 11:16   #7
SASFM
Форумчанин
 
Аватар для SASFM
 
Регистрация: 26.03.2015
Сообщений: 191
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А '9' и '9' пробовал сложить? А строки не равной длины можно слева нулями выровнять
Код:
var s1,s2,sum: string;
    cs1,cs2,ost,x,i,d,L1,L2:integer;
begin
  readln(s1);  L1:=length(s1);
  read(s2);    L2:=length(s2);
  d:=abs(L1-L2);
  if L1<L2 then s1:=StringOfChar('0',d)+s1;
  if L2<L1 then s2:=StringOfChar('0',d)+s2;
  for i:=Length(s1) downto 1 do
  begin
    cs1:=strtoint(s1[i]);
    cs2:=strtoint(s2[i]);
    x:=(cs1+cs2+ost) mod 10;
    ost:=(cs1+cs2+ost) div 10;
    sum:=inttostr(x)+sum;
  end;
  sum:=inttostr(ost)+sum;
  if sum[1]='0' then delete(sum,1,1);
  write(sum);
end.
Моя родина там, где мой компьютер
SASFM вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложить два 48 разрядных числа @Серж@ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2011 20:17
brainfuck сложить два однозн. числа Sna1L Помощь студентам 1 09.06.2011 14:36
MMX сложить два числа gansm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 29.10.2010 05:16
Макрос: сложить два числа белочка Microsoft Office Excel 6 23.12.2009 22:02
Сложить два числа iwaniwan Win Api 3 23.04.2009 06:27