- 1
- 2
- 3
- 4
- 5
- 6
- 7
public static int[] toArray(int i){
int[] arr = new int[new String(Integer.toString(i)).length()];
for(int j=0;j<new String(Integer.toString(i)).length();++j){
arr[j] = Integer.valueOf(new Character(new String(Integer.toString(i)).charAt(j)).toString());
}
return arr;
}
char [] c = chislo.toCharArray();
int [] r = new int [c.length];
int i = 0;
for (Character ch : c) {
r[i ++] = Integer.parseInt(ch.toString());
}
Haskell-код ленивый, памяти нужно мало, скорее всего даже меньше чем джаве
Scala-код выполняется в постоянном объёме памяти благодаря хвостовой рекурсии, памяти нужно примерно как java-программе.
Все варианты требуют O(log n) операций
Или вы имеете ввиду десятичный логарифм? Тогда так и надо писать - lg n. Под log n в IT чаще всего понимают логарифм по основанию 2.
Во-вторых, в O-нотации основание логарифма значения не имеет, поскольку домножением на константу можно получить другое основание, а в O-нотации константы значения не имеют. Можете выбрать то основание, которое вам больше нравится.
а к слову. на кой такое вообще нужно? разве что для лабы какой...
было бы интересно увидеть правильную реализацию на лиспе.
ЗЫ по приколу.
самое простое, что можно придумать:
Но все же. Little Endian
Учите асм и не надо тут выебыватся хаскелами и вычислительными сложностями.
Вполне себе похоже на часть задачи с ProjectEuler. Вам не нравится ProjectEuler? :)
> Учите асм и не надо тут выебыватся хаскелами
Думаете, я никогда не писал на асме? я за портируемый и понятный код.
Впервые слышу. Но мне больше нравится http://www.mersenne.org/ и Prime95.
>я за портируемый и понятный код.
А я за быстро работающий на моей машине.
Мне становится смешно, когда пишут какой-либо алгоритм на языке с виртуальной машиной, а потом говорят о какой-то "оптимальности" или "заточках".
String nums = String.valueOf(n);
вызывает
Integer.toString в свою очередь вызывает
и так далее...
Повторюсь. Это одна строка кода. String.valueOf(n);
> говорят о какой-то "оптимальности" или "заточках"
Никто не говорит об оптимальности и заточках, только о порядке роста (который зависит только от алгоритма, а не языка реализации), портируемости и читабельности.
P.S. Если бы вы проанализировали выполнение приведённого Haskell-кода (где какие thunk'и создаются и т.п.), я был бы вам очень признателен.
C99 не такой уж и новый...
Появилась эта фича только в Турбо-Паскале, да и то довольно поздно, в 5-й или 6-й версии.
http://books.google.ru/books?id=4LMtA2wOsPcC&pg=PA354&printsec= frontcover&hl=ru&source=gbs_ge_summary_r &redir_esc=y#v=onepage&q&f=false
Прокрути чуть ниже, начиная с Conformant Arrays
внизу страницы 355
Ну и как видишь, то, что размер - часть типа, не отменяет массивов неизвестной длины.
не ожидал от вас :(
Правда того Паскаля я вживую не видел.
Но есть нюанс: знак тоже будет записан, в Лиспе числа теоретически бесконечной разрядности.
А вот еще вариант, специально для этого сайта:
:P
PS. А что нужно-то было? Я char-code просто как пример написал, можно что угодно другое, это не важно.
decimals = map Data.Char.digitToInt . show
fixed
GovnoGovno
fixed
Удобрять говно? О_о
или вы правда не знаете, что на удобрения идет?
/fixed/
http://www.gnaa-members.on.nimp.org/