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


Автор: Kernigan 28.11.2006, 21:52
Подскажите пожалуйста, способ деления массива цифр, типа int, большой длины, на цифру или число.

Автор: Sartorius 28.11.2006, 23:05
 Разве есть какие нить варианты кроме как в цикле? :
Код

for(int i = 0; i < ARRAY_SIZE; i++)
{
  array[i] /= chislo;
}

Автор: Kernigan 28.11.2006, 23:32
А если, предположим, array[i] = 7;, а chislo = 24;, тогда заводить ещё один массив ?

Автор: esperant0 29.11.2006, 00:08
Цитата(Kernigan @ 28.11.2006,  23:32)
А если, предположим, array[i] = 7;, а chislo = 24;, тогда заводить ещё один массив ?

HET

Автор: maxim1000 29.11.2006, 01:32
что понимается под "делением массива на число"?
поэлементное?
длинные числа?
или ещё что-то?

Автор: Kuvaldis 29.11.2006, 01:36
Kernigan, 
Посмотри длинную арифметику http://algolist.manual.ru/maths/longnum.php

Автор: Kernigan 29.11.2006, 17:53
Цитата(maxim1000 @ 29.11.2006,  01:32)
что понимается под "делением массива на число"?
поэлементное?
длинные числа?
или ещё что-то?

Полагаю, что деление массива цифр, представляющего длинное число, на целое, должно быть поэлементным.

Автор: maxim1000 29.11.2006, 18:07
Цитата(Kernigan @  29.11.2006,  16:53 Найти цитируемый пост)
Полагаю, что деление массива цифр, представляющего длинное число, на целое, должно быть поэлементным.

под поэлементным я подразумевал, что каждый элемент обрабатывается независимо, т.е.:
result[n]=source[n]/x
это, очевидно, не соответствует делению длинного числа, представленного массивом

51/3=17, но не 10
(1 - 5/3, 0 - 1/3 нацело)

Автор: Kernigan 30.11.2006, 05:20
Да, наверное вы правы. Это не способ.
Тогда, скажите пожалуйста, каким образом, из 
Код

int array {5, 1, 7, 4, .... i}

получить
Код

int array {51, 74, ...,i}

Может быть так
Код

array[i] *= 10;
array[i] += array[i+1];

Автор: esperant0 30.11.2006, 07:12
чавой? smile 

Автор: maxim1000 30.11.2006, 12:23
Цитата(Kernigan @  30.11.2006,  04:20 Найти цитируемый пост)
Может быть так

можно и так, только ещё надо будет удалить со сдвигом нечётные элементы
правда, не очень понятно, как это связано с делением

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