Static class Program { public static IEnumerable<uint> Digits(this uint X, bool Reverse = true) { do { yield return X % 10; } while ((X /= 10) != 0); }
Смотрим на входные данные, исходное слово "апельсин", а зашифрованное "твчюодыа".
Вспоминаем принцип шифра "Цезаря", что бы зашифровать текст, необходимо определить сдвиг по алфавиту, так называемый "корень". То есть, если корень равен 3, то все буквы А в исходном послании заменятся на (сдвигаемся по алфавиту на 3 буквы вправо) букву Г. Но что делать если мы шифруем букву Ю? Считаем сдвиг Ю - Я это 1, а дальше просто "прыгаем" в начало алфавита Я - А это 2, А - Б это 3, следовательно при ключе 3 буква Ю станет буквой Б.
В нашем случаи все что нужно, так это проверить, на сколько букв сместилась буква "а", в слове "апельсин", что превратилась в букву "т", в слове "твчюодыа".
Смотрим по даному алфавиту и считаем количество сдвигов, это будет 19. Теперь провевим, что если сдвинуть остальные буквы в слове апельсин на 19 символов вправо по алфавиту, если они будут соответствовать зашифрованым, то мы нашли корень правильно.
В нашем случаи именно так и есть, то есть ответ задачи ключь = 19.
{
public static IEnumerable<uint> Digits(this uint X, bool Reverse = true)
{
do { yield return X % 10; } while ((X /= 10) != 0);
}
static uint ToUnsignedInt32(this IEnumerable<uint> Digits)
{
return Digits.Reverse().Aggregate((a, d) => a * 10 + d);
}
static void Main()
{
Console.WriteLine(
uint.Parse(Console.ReadLine())
.Digits()
.Where(d => d % 2 == 1)
.ToUnsignedInt32());
Console.ReadKey();
}
}
Ну тут совсем всё просто:
Смотрим на входные данные, исходное слово "апельсин", а зашифрованное "твчюодыа".
Вспоминаем принцип шифра "Цезаря", что бы зашифровать текст, необходимо определить сдвиг по алфавиту, так называемый "корень". То есть, если корень равен 3, то все буквы А в исходном послании заменятся на (сдвигаемся по алфавиту на 3 буквы вправо) букву Г. Но что делать если мы шифруем букву Ю? Считаем сдвиг Ю - Я это 1, а дальше просто "прыгаем" в начало алфавита Я - А это 2, А - Б это 3, следовательно при ключе 3 буква Ю станет буквой Б.
В нашем случаи все что нужно, так это проверить, на сколько букв сместилась буква "а", в слове "апельсин", что превратилась в букву "т", в слове "твчюодыа".
Смотрим по даному алфавиту и считаем количество сдвигов, это будет 19. Теперь провевим, что если сдвинуть остальные буквы в слове апельсин на 19 символов вправо по алфавиту, если они будут соответствовать зашифрованым, то мы нашли корень правильно.
В нашем случаи именно так и есть, то есть ответ задачи ключь = 19.
Объяснение: