fork download
  1. using System;
  2.  
  3. namespace ConsoleApp1
  4. {
  5. public class Password
  6. { //Мы пребываем На планету Тральфамадор ее код в галактике - 8 и находим дневник, некого путешественника, где описана инопланетная раса Тральфамадорцев. А также находим мультицивилизационный переводчик.
  7. //У них очень интересный алфавит"IGUWOCYTAZJHXKVDPLRNMQSEFB". Из дневника узнаем, что Тральфамадорцы не очень любят человеческую расу, но путешественнику удалось найти с ними общий язык. Среди записей находим послание, что если кто-то когда-то прочитает этот дневник
  8. //Должен сказать Тральфамадорцам XY xYGY CYUp Ad ShGp EkUUYjhp. Встретив Тральфамадрцев, мы так и сделали, но они не доверяют нам и в ответ на это говорят PYII hC pmY UhWAYG kT cIlhjmpYGmkhCY
  9. //Изначально стоит обычный английский алфавит. В тексте задания даем алфавит тральфамадорцев IGUWOCYTAZJHXKVDPLRNMQSEFB и код планеты - 8.
  10.  
  11. const string alfabet = "IGUWOCYTAZJHXKVDPLRNMQSEFB";
  12.  
  13. private string CodeEncode(string text, int k)
  14. {
  15. //добавляем в алфавит маленькие буквы
  16. var Alfabet = alfabet + alfabet.ToLower();
  17. var letterQty = Alfabet.Length;
  18. var returnVal = "";
  19. for (int i = 0; i < text.Length; i++)
  20. {
  21. var c = text[i];
  22. var index = Alfabet.IndexOf(c);
  23. if (index < 0)
  24. {
  25. returnVal += c.ToString();
  26. }
  27. else
  28. {
  29. var codeIndex = (letterQty + index + k) % letterQty;
  30. returnVal += Alfabet[codeIndex];
  31. }
  32. }
  33.  
  34. return returnVal;
  35. }
  36.  
  37. //шифрование если нам понадобиться что-то перешифровать до ввода задания в продакшн
  38. public string Encrypt(string plainMessage, int key)
  39. => CodeEncode(plainMessage, key + 1);
  40.  
  41. //дешифрование
  42. public string Decrypt(string encryptedMessage, int key)
  43. => CodeEncode(encryptedMessage, -key - 1);
  44. }
  45. class Program
  46. {
  47. static void Main(string[] args)
  48. {
  49. var pass = new Password();
  50. Console.Write("Мультицивилизационный Дешифратор 4000 \n");
  51. Console.Write("Введите сообщение для дешифровки: ");
  52. var message = Console.ReadLine();
  53. Console.Write("Введите Код цивилизации: ");
  54. var secretKey = Convert.ToInt32(Console.ReadLine());
  55. var encryptedText = pass.Decrypt(message, secretKey);
  56. Console.WriteLine("Сообщение: {0}", encryptedText);
  57. Console.ReadLine();
  58.  
  59. }
  60. }
  61. }
  62.  
Success #stdin #stdout 0.03s 27212KB
stdin
PYII hC pmY UhWAYG kT cIlhjmpYGmkhCY
8
stdout
Мультицивилизационный Дешифратор 4000  
Введите сообщение для дешифровки: Введите Код цивилизации: Сообщение: Tell us the number of Slaughterhouse