1) Считываем входные данные. Перехваченную шифровку записываем в переменную encoded, количество гипотез Антона в переменную N, а сами гипотезы в переменную assumptions.
2) Сортируем буквы в перехваченной шифровке, сохраняем получившийся список в переменную encoded_sorted.
3) Проходимся циклом по всем гипотезам, во время каждой итерации сортируем буквы в гипотезе и сверяем с encoded_sorted. В случае если равно, гипотеза верна => выводим.
Алгоритм:
1) Считываем входные данные. Перехваченную шифровку записываем в переменную encoded, количество гипотез Антона в переменную N, а сами гипотезы в переменную assumptions.
2) Сортируем буквы в перехваченной шифровке, сохраняем получившийся список в переменную encoded_sorted.
3) Проходимся циклом по всем гипотезам, во время каждой итерации сортируем буквы в гипотезе и сверяем с encoded_sorted. В случае если равно, гипотеза верна => выводим.
Код на Python:
encoded = input()
N = int(input())
assumptions = [input() for _ in range(N)]
encoded_sorted = sorted(encoded)
for assumption in assumptions:
if sorted(assumption) == encoded_sorted:
print(assumption)
Объяснение:
#include <iostream>
using namespace std;
long double fact(int N)
{
if(N < 0) // если пользователь ввел отрицательное число
return 0; // возвращаем ноль
if (N == 0) // если пользователь ввел ноль,
return 1; // возвращаем факториал от нуля - не удивляетесь, но это 1 =)
else // Во всех остальных случаях
return N * fact(N - 1); // делаем рекурсию.
}
int main()
{
int N;
setlocale(0,""); // Включаем кириллицу
cout << "Введите число для вычисления факториала: ";
cin >> N;
cout << "Факториал для числа " << N << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
return 0;
}