Advertisement
dimipan80

Exam 8. Programmer DNA

Jun 21st, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.88 KB | None | 0 0
  1. using System;
  2. using System.Globalization;
  3. using System.Threading;
  4.  
  5. public class ProgrammerDNA
  6. {
  7.     public static void Main()
  8.     {
  9.         Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
  10.         checked
  11.         {
  12.             int height = int.Parse(Console.ReadLine());
  13.             char firstLetter = Convert.ToChar(Console.ReadLine());
  14.  
  15.             int indexLetter = Convert.ToInt32(firstLetter) - 65;
  16.             for (int i = 0; i < height / 7; i++)
  17.             {
  18.                 indexLetter = PrintFullSevenRowsOfDNASequence(indexLetter);
  19.             }
  20.  
  21.             int remainder = height % 7;
  22.             if (remainder > 0)
  23.             {
  24.                 int countLetterSeq = 1;
  25.                 int dotSeqLength = 3;
  26.                 string outerDotSequence;
  27.                 for (int row = 0; row < remainder; row++)
  28.                 {
  29.                     outerDotSequence = new string('.', dotSeqLength);
  30.                     string lettersSequence = string.Empty;
  31.                     for (int i = 0; i < countLetterSeq; i++)
  32.                     {
  33.                         indexLetter %= 7;
  34.                         char letter = Convert.ToChar(indexLetter + 65);
  35.                         lettersSequence += letter;
  36.                         indexLetter++;
  37.                     }
  38.  
  39.                     Console.WriteLine("{0}{1}{0}", outerDotSequence, lettersSequence);
  40.                     if (row < 3)
  41.                     {
  42.                         countLetterSeq += 2;
  43.                         dotSeqLength--;
  44.                     }
  45.                     else
  46.                     {
  47.                         countLetterSeq -= 2;
  48.                         dotSeqLength++;
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.     }
  54.  
  55.     private static int PrintFullSevenRowsOfDNASequence(int indexLetter)
  56.     {
  57.         checked
  58.         {
  59.             int countLetterSeq = 1;
  60.             int dotSeqLength = 3;
  61.             string outerDotSequence;
  62.             for (int row = 0; row < 7; row++)
  63.             {
  64.                 outerDotSequence = new string('.', dotSeqLength);
  65.                 string lettersSequence = string.Empty;
  66.                 for (int i = 0; i < countLetterSeq; i++)
  67.                 {
  68.                     indexLetter %= 7;
  69.                     char letter = Convert.ToChar(indexLetter + 65);
  70.                     lettersSequence += letter;
  71.                     indexLetter++;
  72.                 }
  73.  
  74.                 Console.WriteLine("{0}{1}{0}", outerDotSequence, lettersSequence);
  75.                 if (row < 3)
  76.                 {
  77.                     countLetterSeq += 2;
  78.                     dotSeqLength--;
  79.                 }
  80.                 else if (row < 6)
  81.                 {
  82.                     countLetterSeq -= 2;
  83.                     dotSeqLength++;
  84.                 }
  85.             }
  86.  
  87.             return indexLetter;
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement