ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.11.2023
Просмотров: 14
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Тольяттинский государственный университет»
(наименование института полностью) |
|
(Наименование учебного структурного подразделения) |
|
(код и наименование направления подготовки / специальности) |
|
(направленность (профиль) / специализация) |
Практическое задание №1
по учебному курсу «Алгоритмы и структуры данных»
(наименование учебного курса)
Обучающегося | Иванов П.Р. | |
| (И.О. Фамилия) | |
Группа | ПИБД-1909 | |
| | |
Преподаватель | Тренина Марина Анатольевна | |
| (И.О. Фамилия) | |
Тольятти 2023
Формулировка задания 1
Выполните следующие задачи с использованием рекурсивных функций.
-
Дано натуральное число n. Выведите все его цифры. -
Дано натуральное число n. Найти сумму цифр данного числа. -
Дано натуральное число n. Запишите его в обратном порядке. -
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок.
Решение:
-
public class Solution {
public static String recursion(int n) {
// Базовый случай
if (n == 1) {
return "1";
}
// Шаг рекурсии / рекурсивное условие
return recursion(n - 1) + " " + n;
}
public static void main(String[] args) {
System.out.println(recursion(10)); // вызов рекурсивной функции
}
}
-
public class Solution {
public static int recursion(int n) {
// Базовый случай
if (n < 10) {
return n;
}// Шаг рекурсии / рекурсивное условие
else {
return n % 10 + recursion(n / 10);
}
}
public static void main(String[] args) {
System.out.println(recursion(123)); // вызов рекурсивной функции
}
}
-
public class Solution {
public static int recursion(int n) {
// Базовый случай
if (n < 10) {
return n;
}// Шаг рекурсии / рекурсивное условие
else {
System.out.print(n % 10 + " ");
return recursion(n / 10);
}
}
public static void main(String[] args) {
System.out.println(recursion(123)); // вызов рекурсивной
функции
}
}
-
public class Solution {
public static void recursion() {
java.util.Scanner in = new java.util.Scanner(System.in);
int n = in.nextInt();
// Базовый случай
if (n > 0) {
// Шаг рекурсии / рекурсивное условие
if (n % 2 == 1) {
System.out.println(n);
recursion();
} else {
recursion();
}
}
}
public static void main(String[] args) {
recursion(); // вызов рекурсивной функции
}
}