Редактирование: Арифметика чисел в b-ичной системе счисления (Длинная арифметика)

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 108: Строка 108:
 
Алгоритм требует <tex>O(n \cdot m)</tex> памяти, где <tex>n, m</tex> — длины чисел <tex>a</tex> и <tex>b</tex>.
 
Алгоритм требует <tex>O(n \cdot m)</tex> памяти, где <tex>n, m</tex> — длины чисел <tex>a</tex> и <tex>b</tex>.
  
     '''function''' getCompLongLong(a: '''vector<int>''', b: '''vector<int>'''): '''vector<int>'''
+
     carry = 0
        carry = 0
+
    i = 0
        i = 0
+
    '''while''' i < a.size()
        '''while''' i < a.size()
+
      j = 0
            j = 0
+
      '''while''' (j < b.size() || carry)
            '''while''' (j < b.size() || carry)
+
        '''if''' j < b.size()
                '''if''' j < b.size()
+
          cur = c[i + j] + a[i] <tex>\cdot</tex> b[j] + carry
                    cur = c[i + j] + a[i] <tex>\cdot</tex> b[j] + carry
+
        '''else'''
                '''else'''
+
          cur = c[i + j] + carry
                    cur = c[i + j] + carry
+
        c[i + j] = cur '''mod''' base
                c[i + j] = cur '''mod''' base
+
        carry = cur / base
                carry = cur / base
+
        i++
                j++
+
      j++
            i++
+
    '''while''' c.size() > 1 && c.back() == 0
        '''while''' c.size() > 1 && c.back() == 0
+
      c.pop_back()
            c.pop_back()
 
        '''return''' c
 
  
 
=== Деление длинного на короткое  ===
 
=== Деление длинного на короткое  ===

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: