Помогите пожалуйста с задачкой про шарики. Может у кого-то сохранилось решение… Буду благодарен
Сюжет задачи про шарики. Из урны с 10 пронумерованными шариками вынимают по одному шарику. Подсчитать общее количество ситуаций, когда номер хотя бы одного вынутого шарика совпадает с порядковым номером действия “вынимания”, например, когда шарик № 3 будет вынут 3-им по порядку.
Один из возможных вариантов алгоритма решения задачи про шарики
-
Задать количество шариков n.
-
Создать массив пронумерованных шариков от 1 до n.
-
Целочисленная переменная i - номер шарика (от 1 до n), одновременно являющаяся счетчиком действий.
-
Создать функцию perestanovka от целочисленных m и n, которая генерирует перестановки, в зависимости от количества шариков (n) и в которой фигурирует номер очередного переставляемого шарика (m). В этой функции использовать условие: когда номер шага i равен номеру вынимаемого шарика m, печатать очередную перестановку. Во всех остальных случаях менять местами элементы с номерами i и m, после чего вызывать функцию perestanovka со следующим значением шага и опять же менять местами элементы с номерами i и m.
-
Основная программа: присваивание шарикам порядковых номеров, вызов функции perestanovka с параметрами 1 (первый шаг) и n (количество шариков).