ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.11.2023

Просмотров: 14

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное бюджетное образовательное учреждение высшего образования

«Тольяттинский государственный университет»



(наименование института полностью)



(Наименование учебного структурного подразделения)




(код и наименование направления подготовки / специальности)



(направленность (профиль) / специализация)



Практическое задание №1
по учебному курсу «Алгоритмы и структуры данных»

(наименование учебного курса)


Обучающегося

Иванов П.Р.







(И.О. Фамилия)




Группа

ПИБД-1909













Преподаватель

Тренина Марина Анатольевна







(И.О. Фамилия)





Тольятти 2023

Формулировка задания 1

Выполните следующие задачи с использованием рекурсивных функций.

  1. Дано натуральное число n. Выведите все его цифры.

  2. Дано натуральное число n. Найти сумму цифр данного числа.

  3. Дано натуральное число n. Запишите его в обратном порядке.

  4. Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок.


Решение:

  1. 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)); // вызов рекурсивной функции

}

}

  1. 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)); // вызов рекурсивной функции

}

}

  1. 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)); // вызов рекурсивной

функции

}

}

  1. 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(); // вызов рекурсивной функции

}

}