Advertisement
sergezhu

Untitled

Apr 30th, 2023
1,067
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.06 KB | None | 0 0
  1. namespace ConsoleApp1;
  2.  
  3. using System.Text;
  4.  
  5. public class Task27
  6. {
  7.     public void Run()
  8.     {
  9.         Console.InputEncoding = Encoding.Unicode;
  10.         Console.OutputEncoding = Encoding.Unicode;
  11.  
  12.         int numbersArrayLength = 20;
  13.         int randomRangeIncludedLowBound = 1;
  14.         int randomRangeExcludedHighBound = 100;
  15.         Random random = new Random();
  16.  
  17.         int[] numbers = new int[numbersArrayLength];
  18.  
  19.         string displayedNumbers = string.Empty;
  20.  
  21.         for ( int i = 0; i < numbersArrayLength; i++ )
  22.         {
  23.             numbers[i] = random.Next( randomRangeIncludedLowBound, randomRangeExcludedHighBound );
  24.             displayedNumbers = $"{displayedNumbers}{numbers[i]} ";
  25.         }
  26.  
  27.         Console.WriteLine( $"Source numbers:\n{displayedNumbers}\n" );
  28.  
  29.         bool canExit = false;
  30.  
  31.         while ( canExit == false )
  32.         {
  33.             Console.Write($"Input array roll offset: ");
  34.             int numbersArrayRollOffset = int.Parse( Console.ReadLine() );
  35.            
  36.             int loopsOffset = 1;
  37.             int numberArrayRollLoops = Math.Abs( numbersArrayRollOffset ) / numbersArrayLength + loopsOffset;
  38.             int normalizedNumbersArrayRollOffset = (numbersArrayRollOffset + numbersArrayLength * numberArrayRollLoops) % numbersArrayLength;
  39.  
  40.             if ( normalizedNumbersArrayRollOffset == 0 )
  41.             {
  42.                 Console.WriteLine("Array has no changes\n");
  43.             }
  44.             else
  45.             {
  46.                 int indexOffset = 1;
  47.                 var lastIndex = numbersArrayLength - 1;
  48.                
  49.                 for ( int rollStep = 0; rollStep < normalizedNumbersArrayRollOffset; rollStep++ )
  50.                 {
  51.                     int tempNumber = numbers[lastIndex];
  52.  
  53.                     for ( int i = lastIndex - indexOffset; i >= 0 ; i-- )
  54.                         numbers[i + 1] = numbers[i];
  55.  
  56.                     numbers[0] = tempNumber;
  57.                 }  
  58.             }
  59.  
  60.             displayedNumbers = string.Empty;
  61.  
  62.             for ( int i = 0; i < numbersArrayLength; i++ )
  63.                 displayedNumbers = $"{displayedNumbers}{numbers[i]} ";
  64.  
  65.             Console.WriteLine( $"Rolled numbers:\n{displayedNumbers}\n" );
  66.  
  67.             string properlyExitAnswer = "n";
  68.             Console.WriteLine( $"Continue? Enter \'{properlyExitAnswer}\' for exit" );
  69.             string continueAnswer = Console.ReadLine();
  70.  
  71.             canExit = string.Equals( continueAnswer, properlyExitAnswer );
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement