Advertisement
sergezhu

Untitled

Apr 30th, 2023
713
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.09 KB | None | 0 0
  1. namespace ConsoleApp1;
  2.  
  3. using System.Text;
  4.  
  5. public class Task24
  6. {
  7.     public void Run()
  8.     {
  9.         Console.InputEncoding = Encoding.Unicode;
  10.         Console.OutputEncoding = Encoding.Unicode;
  11.  
  12.         int randomRangeIncludedLowBound = 5;
  13.         int randomRangeExcludedHighBound = 10;
  14.         Random random = new Random();
  15.  
  16.         int numbersArrayLength = 30;
  17.  
  18.         bool canExit = false;
  19.  
  20.         while ( canExit == false )
  21.         {
  22.             Console.Clear();
  23.  
  24.             int[] numbers = new int[numbersArrayLength];
  25.             string displayedNumbers = string.Empty;
  26.  
  27.             int repeatCheckStartIndex = 1;
  28.             int firstNumberIndex = 0;
  29.             int repeatedNumber = numbers[firstNumberIndex];
  30.             int startRepeatsCount = 1;
  31.             int repeatsCount = startRepeatsCount;
  32.             int maxRepeatsCount = repeatsCount;
  33.             int repeatedSequenceStartIndex = firstNumberIndex;
  34.             int indexOffset = 1;
  35.  
  36.             for ( int index = 0; index < numbersArrayLength; index++ )
  37.             {
  38.                 int currentNumber = random.Next( randomRangeIncludedLowBound, randomRangeExcludedHighBound );
  39.                 numbers[index] = currentNumber;
  40.                
  41.                 displayedNumbers = $"{displayedNumbers}{currentNumber} ";
  42.  
  43.                 if ( index < repeatCheckStartIndex )
  44.                     continue;
  45.  
  46.                 int previousNumberIndex = index - 1;
  47.                 int previousNumber = numbers[previousNumberIndex];
  48.                
  49.                 if ( currentNumber == previousNumber )
  50.                 {
  51.                     repeatsCount++;
  52.  
  53.                     if ( repeatsCount > maxRepeatsCount )
  54.                     {
  55.                         maxRepeatsCount = repeatsCount;
  56.                         repeatedNumber = previousNumber;
  57.                         repeatedSequenceStartIndex = index - maxRepeatsCount + indexOffset;
  58.                     }
  59.                 }
  60.                 else
  61.                 {
  62.                     repeatsCount = startRepeatsCount;
  63.                 }
  64.             }
  65.  
  66.             Console.WriteLine( $"Source numbers:\n{displayedNumbers}" );
  67.             Console.WriteLine( $"Max repeated sequence is from number {repeatedNumber}, repeats count is {maxRepeatsCount}" +
  68.                                $", sequence start index is {repeatedSequenceStartIndex}" );
  69.  
  70.             string properlyExitAnswer = "n";
  71.             Console.WriteLine( $"Continue? Enter \'{properlyExitAnswer}\' for exit" );
  72.             string continueAnswer = Console.ReadLine();
  73.  
  74.             canExit = string.Equals( continueAnswer, properlyExitAnswer );
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement