Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Знаковая арифметика


Автор: Saratov 1.12.2005, 21:54
помоги разобраться, а то что то не получается. Желателен код.


Вам даны два длинных знаковых числа A, B и операция Op. Операция это -- "+", "-" или "*". Выведите результат применения Op к A, B.

Входные данные
Во входном файле записан набор тестов. Каждый тест состоит из трех строк: A, Op, B. Всего тестов не более 10. Все числа не превосходят 10^1000 по абсолютной величине.

Выходные данные
Выведите ответ.

Пример

Ввод

10
*
3
-7
+
10


Вывод

30
3


Автор: cardinal 1.12.2005, 22:06
Цитата(Saratov @ 1.12.2005, 19:54)
Желателен код.

Какой язык?

Автор: Saratov 1.12.2005, 22:13
Delfi

Автор: eskaflone 2.12.2005, 01:43
применяем длинную арифметику :
http://forum.pascal.net.ru/index.php?showtopic=2428

Код

var a,b,c : PLong;
    zn1,zn2,op : char;
...............
readln(n); //колво тестов
for i := 1 to n do
   begin
      read(f,zn1);
      readLong(f,a);
      read(f,op);
      while not (op in ['-','+','*']) do read(f,op);
      read(f,zn2);
      while not (zn2 in ['-','+']) do read(f,zn2);
      if op = '*' then
         begin
            if zn1 = zn2 then write('+') else write('-');
            MulLongTwo(a,b,c);
            writeLong(f,c);
         end else
            begin
               if op = zn2 then zn2 := '+' else zn2 := '-';
               if zn1 = '+' then 
                  begin
                     write(f,'+');
                     SumLongTwo(a,b,c);
                     writeLong(f,c);
                  end else
                     if MoreLong(a,b) then
                        begin
                           write(f,'-');
                           SubLongTwo(a,b,0);
                           writeLong(f,a);
                        end else
                           begin
                              write(f,'+');
                              SubLongTwo(b,a,0);
                              writeLong(f,b);
                           end;
            end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)