Advertisement
another90sm

EncryptedMatrix

Dec 17th, 2015
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7.  
  8. class EncryptedMatrix
  9. {
  10.     static void Main()
  11.     {
  12.         string message = Console.ReadLine();
  13.         char direction = char.Parse(Console.ReadLine());
  14.         char[] splited = message.ToCharArray();
  15.         int[] number = new int[splited.Length];
  16.         List<int> encryptNumber = new List<int>();
  17.  
  18.         for (int i = 0; i < splited.Length; i++)
  19.         {
  20.             number[i] = Convert.ToInt32(splited[i]);
  21.             number[i] = number[i] % 10;
  22.         }
  23.  
  24.         for (int i = 0; i < number.Length; i++)
  25.         {
  26.             if (number[i] % 2 == 0 || number[i] == 0)
  27.             {
  28.                 int multiply = number[i] * number[i];
  29.                 if (multiply >= 10)
  30.                 {
  31.                     encryptNumber.Add(multiply / 10);
  32.                     encryptNumber.Add(multiply % 10);
  33.                 }
  34.                 else
  35.                 {
  36.                     encryptNumber.Add(number[i] * number[i]);
  37.                 }
  38.             }
  39.             if (number[i] % 2 != 0)
  40.             {
  41.                 if (i == 0 && i == number.Length - 1)
  42.                 {
  43.                     encryptNumber.Add(number[i]);
  44.                 }
  45.                 else if (i == 0)
  46.                 {
  47.                     int sum = (number[i] + number[i + 1]);
  48.                     if (sum >= 10)
  49.                     {
  50.                         encryptNumber.Add(sum / 10);
  51.                         encryptNumber.Add(sum % 10);
  52.                     }
  53.                     else
  54.                     {
  55.                         encryptNumber.Add(number[i] + number[i + 1]);
  56.                     }
  57.                 }
  58.                 else if (i == number.Length - 1)
  59.                 {
  60.                     int sum = (number[i] + number[i - 1]);
  61.                     if (sum >= 10)
  62.                     {
  63.                         encryptNumber.Add(sum / 10);
  64.                         encryptNumber.Add(sum % 10);
  65.                     }
  66.                     else
  67.                     {
  68.                         encryptNumber.Add(number[i] + number[i - 1]);
  69.                     }
  70.                 }
  71.                 else
  72.                 {
  73.                     int sum = (number[i] + number[i - 1] + number[i + 1]);
  74.                     if (sum >= 10)
  75.                     {
  76.                         encryptNumber.Add(sum / 10);
  77.                         encryptNumber.Add(sum % 10);
  78.                     }
  79.                     else
  80.                     {
  81.                         encryptNumber.Add(number[i] + number[i - 1] + number[i + 1]);
  82.                     }
  83.                 }
  84.             }
  85.         }
  86.  
  87.         switch (direction)
  88.         {
  89.             case '\\':
  90.                 for (int i = 0; i < encryptNumber.Count; i++)
  91.                 {
  92.                     for (int j = 0; j < encryptNumber.Count; j++)
  93.                     {
  94.                         if (i == j)
  95.                         {
  96.                             Console.Write(encryptNumber[j] + " ");
  97.                         }
  98.                         else
  99.                         {
  100.                             Console.Write("{0} ", 0);
  101.                         }
  102.                     }
  103.                     Console.WriteLine();
  104.                 }
  105.                 break;
  106.             case '/':
  107.                 for (int i = encryptNumber.Count - 1; i >= 0; i--)
  108.                 {
  109.                     for (int j = 0; j < encryptNumber.Count; j++)
  110.                     {
  111.                         if (i == j)
  112.                         {
  113.                             Console.Write(encryptNumber[j] + " ");
  114.                         }
  115.                         else
  116.                         {
  117.                             Console.Write("{0} ", 0);
  118.                         }
  119.                     }
  120.                     Console.WriteLine();
  121.                 }
  122.                 break;
  123.         }
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement