/
AlexStone
/
Java25sep
Обзор
Документация
Войти
/
AlexStone
/
Java25sep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
java/tasks 26.html
394 строки
18 KB
unknown
КР 05.11.25
05 ноя 2025, 09:55
05 ноя 2025, 09:55
4a942c9
Код
Авторство
О чём код?
<!DOCTYPE html><html lang="ru"><head><meta charset='utf-8'/><title>26 Рекурсия</title><style>.check_single { margin:15px; border:1px solid black; padding:5px; width:calc(100% - 40px); } sqrt val { border-top: 1px solid black; } sqrt:before { content:"\221A"; } .section { counter-reset:section; } .section h3:after { counter-increment:section; content: " " counter(section); } table { border-collapse:collapse; } .check_values, .check_values_v2 { width:100%; counter-reset:test_case; } .check_values td:first-child::before { counter-increment:test_case; content: counter(test_case); } table td, table th { border:1px solid black; text-align:center; } .check_values td:first-child, .check_values_v2 td:first-child{ width:40px; } .check_values td, .check_values_v2 td { max-width: 450px; } .lab_nav ol { list-style:none; } .nav { position:fixed; top:0; right:0; margin:15px; clear:both; } .nav ul{ list-style-type:none; padding:0; float:left; } .nav li { margin:2px; border:1px solid black; } .nav li a { display:block; padding:7px; } .task_block { width:80%; page-break-inside:avoid; padding:10px; display:block; } .task_block:target{ background-color:lightgrey; } .task_block:target .task_id{ color:white; } .task_id { float:right; color:lightgrey; } .quiz_block { width:80%; } .quiz_block:target{ background-color:lightgrey; } .task_desc { margin:5px; } .example_image { width:200px; } .lab_nav { width:80%; overflow:auto; } .check_values .preformatted, .preformatted { font-family:monospace; white-space-collapse:preserve; white-space:pre; text-wrap:pretty; text-align:left; padding:10px; } .stream_values tr td:nth-child(3) { border-top-width:0; border-bottom-width:0; text-align:left; } .stream_values tr:nth-child(2) td:nth-child(2) { border-top-width:0; border-bottom-width:0; text-align:right; } .stream_values tr td:nth-child(1){ border-top-width:0; border-bottom-width:0; text-align:right; } .stream_values tr.test_row td:nth-child(2){ text-align:right; } .stream_values tr td:nth-child(2){ border-top-width:0; border-bottom-width:0; text-align:left; } .stream_values .preformatted{ padding: 0; } .stream_values tr.test_row td { border-top-width:1px; } .stream_values tr.test_row td:first-of-type { border-top-width:1px; border-bottom-width:1px; text-align:center; width:15px; } .stream_values tr:last-of-type td { border-bottom-width:1px; } .stream_values { width:100%; } formula { font-weight:bold; text-align:center; vertical-align:middle; } fraction { display:inline-block; text-align:center; vertical-align:middle; font-weight:bold; } formula .abs{ border-left: solid black 1px; border-right: solid black 1px; padding: 2px; } numerator { display:block; border-bottom:2px solid black; } denominator { display:block; } .comment{ color:darkgrey; } .step{ display:none; } .step:last-child, .step:target{ display:block; } .step:target ~ .step:last-child{ display:none; } .console{ background-color:black; color:white; width:300px; } .zoom{ background-color:lightgrey; font-size:40pt; padding:0 10px; } .task_block:target .zoom { background-color:white; }</style><meta name="author" content="Подборка задач, выбор порядка подачи и подготовка тестовых данных - Крюков Александр, Омск 2013-2019"/></head><body class='section'><a name='heading'><h1>Рекурсия</h1></a><div class='lab_nav'>Другие темы<ol> <li>1 <a href='tasks 1.html'>Печать текста на экран</a></li> <li>2 <a href='tasks 2.html'>Заполнение шаблона данными от пользователя</a></li> <li>3 <a href='tasks 3.html'>Организация вычислений</a></li> <li>4 <a href='tasks 4.html'>Проверка исходных данных</a></li> <li>5 <a href='tasks 5.html'>Запуск программы с известными исходными данными</a></li> <li>6 <a href='tasks 6.html'>Взаимоисключающие случаи</a></li> <li>7 <a href='tasks 7.html'>Работа с интервалами значений</a></li> <li>8 <a href='tasks 8.html'>Реорганизация повторяющихся действий</a></li> <li>9 <a href='tasks 9.html'>Обработка неизвестного объема данных</a></li> <li>10 <a href='tasks 10.html'>Вложенные циклы</a></li> <li>11 <a href='tasks 11.html'>Базовые операции с массивами</a></li> <li>12 <a href='tasks 12.html'>Перестановки элементов массива</a></li> <li>13 <a href='tasks 13.html'>Использование числовых массивов</a></li> <li>14 <a href='tasks 14.html'>Вычисление агрегатов</a></li> <li>15 <a href='tasks 15.html'>Поиск в массиве</a></li> <li>16 <a href='tasks 16.html'>Сортировка вставкой</a></li> <li>17 <a href='tasks 17.html'>Строки</a></li> <li>18 <a href='tasks 18.html'>Чтение файлов</a></li> <li>19 <a href='tasks 19.html'>Запись в файлы</a></li> <li>20 <a href='tasks 20.html'>Возврат значения</a></li> <li>21 <a href='tasks 21.html'>Перехват исключений</a></li> <li>22 <a href='tasks 22.html'>Выбрасывание исключений</a></li> <li>23 <a href='tasks 23.html'>Составные типы данных</a></li> <li>24 <a href='tasks 24.html'>Внутреннее состояние</a></li> <li>25 <a href='tasks 25.html'>Коллекции</a></li> <li>26 <a href='tasks 26.html'>Рекурсия</a></li> <li>27 <a href='tasks 27.html'>Даты</a></li> <li>28 <a href='tasks 28.html'>Комбинаторика</a></li> <li>29 <a href='tasks 29.html'>SQL СУБД</a></li> <li>30 <a href='tasks 30.html'>Псевдослучайные числа</a></li> <li>31 <a href='tasks 31.html'>Реализация стандартных интерфейсов</a></li> </ol></div><div class='nav'><ul><li><a href='#heading'>^</a></li><li><a href='#task4106'>1</a><li><a href='#task4664'>2</a><li><a href='#task1068'>3</a><li><a href='#task6646'>4</a></ul></div><div id='task4106' class='task_block'> <div class='task_id'>4106</div> <h3>Задача</h3> <div class='task_desc'> Написать подробную версию программы. </div> <div class='check_single preformatted'>private static void work(int n) { if (n < 0) { return; } work(n-2); print(n); work(n-3); } public static void main(String[] args) { work(6); }</div> <div class='task_desc'> Этот код возвращает числа: 02416130. Проверьте, что подробная версия программы возвращает те же числа. </div> </div> <div id='task4664' class='task_block'> <div class='task_id'>4664</div> <h3>Задача</h3> <div class='task_desc'> Написать подробное решение: </div> <div class='check_single preformatted'>public static void main(String[] args) { int[] haystack = new int[]{9, 80, 7, -6, 50, 4, -300}; search(haystack, 4, 0); } public static void search(int[] haystack, int needle, int i) { if (i >= haystack.length) { System.out.println("Не найден"); return; } if (haystack[i] == needle) { System.out.println("Найден на индексе " + i); return; } search(haystack, needle, i + 1); }</div> </div> <div id='task1068' class='task_block'> <div class='task_id'>1068</div> <h3>Задача</h3> <div class='task_desc'> Написать сокращенное рекурсивное решение. </div> <div class='check_single preformatted'>private static void level1() { System.out.println("Предисловие"); System.out.println("Глава 1"); level2(); } private static void level2() { System.out.println("Глава 2"); level3(); } private static void level3() { System.out.println("Глава 3"); level4(); } private static void level4() { System.out.println("Глава 4"); System.out.println("Заключение"); } public static void main(String[] args) { level1(); }</div> </div> <div id='task6646' class='task_block'> <div class='task_id'>6646</div> <h3>Задача</h3> <div class='task_desc'> Пользователь указывает путь к папке. Нужно реализовать подсчет суммы чисел во всех вложенных файлах и папках. В папке может быть несколько файлов. Каждый файл содержит неизвестное количество целых чисел. Пустые файлы нужно пропустить. Подсчитывать только сумму корректных целых чисел. Некорректные значения нужно пропустить, не прекращая работу программы. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (path)</th><th>Результат</th></tr> <tr><td>1</td><td><a href="files/task6646/test1" target="_blank">открыть в новой вкладке<br>files/task6646/test1</a></td><td class='preformatted'>Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1\data.txt Сумма в файле 90 Сумма в папке 90 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2\data1.txt Сумма в файле 107 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2\data2.txt Сумма в файле 34000 Сумма в папке 34107 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3\data1.txt Сумма в файле 900000 Сумма в папке 900000 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3 Сумма в папке 934197 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1 </td></tr> <tr><td>2</td><td><a href="files/task6646/test2" target="_blank">открыть в новой вкладке<br>files/task6646/test2</a></td><td class='preformatted'>Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\data.txt Сумма в файле 30000 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part1\data.txt Сумма в файле 60 Сумма в папке 60 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part2 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part2\data.txt Сумма в файле 7 Сумма в папке 7 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1\part2 Сумма в папке 30067 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter2 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter2\part1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter2\part1\data.txt Сумма в файле 200 Сумма в папке 200 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter2\part1 Сумма в папке 200 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\chapter2 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2\data.txt Сумма в файле 8000 Сумма в папке 38267 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test2 </td></tr> <tr><td>3</td><td><a href="files/task6646/test3" target="_blank">открыть в новой вкладке<br>files/task6646/test3</a></td><td class='preformatted'>Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter1\data.txt Сумма в файле 0 Сумма в папке 0 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter2 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter2\data.txt Сумма в файле 17 Сумма в папке 17 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3\chapter2 Сумма в папке 17 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test3 </td></tr> <tr><td>4</td><td><a href="files/task6646/test4" target="_blank">открыть в новой вкладке<br>files/task6646/test4</a></td><td class='preformatted'>Путь не существует C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test4 </td></tr> <tr><td>5</td><td><a href="files/task6646/test5" target="_blank">открыть в новой вкладке<br>files/task6646/test5</a></td><td class='preformatted'>Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4\level5 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4\level5\level6 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4\level5\level6\data.txt Запись содержит не число one Запись содержит не число three Сумма в файле 987654324 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4\level5\level6 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4\level5 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3\level4 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2\level3 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1\level2 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5\level1 Сумма в папке 987654324 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test5 </td></tr> <tr><td>6</td><td><a href="files/task6646/test1" target="_blank">открыть в новой вкладке<br>files/task6646/test1</a></td><td class='preformatted'>Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1\data.txt Сумма в файле 90 Сумма в папке 90 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter1 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2\data1.txt Сумма в файле 107 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2\data2.txt Сумма в файле 34000 Сумма в папке 34107 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter2 Это папка C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3 Это файл C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3\data1.txt Сумма в файле 900000 Сумма в папке 900000 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1\chapter3 Сумма в папке 934197 C:\Users\adm\IdeaProjects\programming-basics\src\files\task6646\test1 </td></tr> </table> </div> Версия 20240202. Подборка задач, выбор порядка подачи и подготовка тестовых данных - Крюков Александр, Омск 2013-2026. <a href='https://github.com/AKryukov92/programming-basics'>Основной репозиторий</a></body></html>