|
Подскажите как в цикле или не используя цикл
|
|||
---|---|---|---|
#18+
Подскажите как в цикле или не используя цикл или через рекурсию Не до конца понимаю как сделать через рекурсию чтобы на каждом шаге i запоминалось предыдущее состояние создать строку, состоящую из чисел от 0 до 20000. Важно понимать, что это одна строка, полученная конкатенацией (“склеиванием”) чисел из диапазона через пробел (0 + “ “ + 1 + “ “ + 2 + … + 20000). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 22:22 |
|
Подскажите как в цикле или не используя цикл
|
|||
---|---|---|---|
#18+
Тут не получается красивое решение на рекурсии в духе ФП. Java не поддерживает хвостовую рекурсию. Тоесть она по настоящему будет использовать стек. И надо обеспечить 20 тысяч уровней вложенности. Это опасно по причине Stackoverflow. Возможно придется для этой задачи менять Код: java 1.
Но вдвойне опасно то что на каждом уровне стека мы будем передавать растущую иммутабельную строку которая также создаст проблемы для другой памяти типа Heap с квадратичным ростом потребления. Это можно слегка придавить если передавать строку в передаваемый StringBuilder но это как говорил Шипилёв - "калечить" код в угоду перформансу. Вобщем я советую забыть вообще про рекурсию и делать циклом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 22:57 |
|
Подскажите как в цикле или не используя цикл
|
|||
---|---|---|---|
#18+
x17.mstu, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
java R 0 20000 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 00:32 |
|
Подскажите как в цикле или не используя цикл
|
|||
---|---|---|---|
#18+
Хм... делить пополам. Тоже интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 00:38 |
|
|
start [/forum/topic.php?fid=59&fpage=11&tid=2120632]: |
0ms |
get settings: |
22ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
142ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 554ms |
0 / 0 |