Олимпиады по информатике (ХМАО - Югра)

   
 
Югорский НИИ ИТ, Югорский ФМЛ
Логин:   Пароль:    
 
   
 
Новости
О проекте
Регистрация
Гостевая книга
Форум
Архив задач
Состояние системы
Олимпиады
Работа в системе
Рейтинг
Новичкам
Методическое пособие
Дистанционное обучение
Дистрибутивы
Ссылки

HotLog

Снова A+B

(Время: 1 сек. Память: 16 Мб Сложность: 35%)

Сложение двух длинных чисел выполняется с использованием тех же принципов, что и при поразрядном сложении вручную на листе бумаги. Считаем сначала числа в массивы a и b, после чего осуществим сложение таким образом, что результат суммы запишется в массив a. В переменной с будем хранить перенос на следующий разряд.

В простейшем случае решение поставленной задачи представимо следующим алгоритмом:

  const maxsize=102;
  int a[maxsize], b[maxsize];
  
  readlong(a);
  readlong(b);

  m=max(a[0],b[0]);

  c=0;
  for i=1..m{
    c = c+a[i]+b[i];
    a[i] = c mod 10;
    c = c div 10;
  }
  if(c>0){
    m=m+1;
    a[m] = c;
  }
  a[0]=m;

  writelong(a);

Информацию о представлении длинных чисел и реализации функций readlong и writelong вы можете прочитать здесь.

[Все попытки] [Задача]

 
     
Югорский НИИ ИТ, Югорский ФМЛ