Advertisement
sergezhu

Untitled

Mar 30th, 2023
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.41 KB | None | 0 0
  1. Console.InputEncoding = Encoding.Unicode;
  2. Console.OutputEncoding = Encoding.Unicode;
  3.  
  4. bool loopExitFlag = false;
  5.  
  6. while ( !loopExitFlag )
  7. {
  8.     Console.WriteLine( "Введите размеры зоны" );
  9.     Console.Write( "X : " );
  10.     string zoneSizeXRaw = Console.ReadLine();
  11.     int zoneSizeX = int.Parse( zoneSizeXRaw );
  12.  
  13.     Console.Write( "Y : " );
  14.     string zoneSizeYRaw = Console.ReadLine();
  15.     int zoneSizeY = int.Parse( zoneSizeYRaw );
  16.  
  17.     Console.WriteLine( $"Размеры зоны: {zoneSizeX} x {zoneSizeY}" );
  18.  
  19.  
  20.     Console.WriteLine( "Введите размеры места под одну картину:" );
  21.     Console.Write( "X : " );
  22.     string imageSizeXRaw = Console.ReadLine();
  23.     int imageSizeX = int.Parse( imageSizeXRaw );
  24.  
  25.     Console.Write( "Y : " );
  26.     string imageSizeYRaw = Console.ReadLine();
  27.     int imageSizeY = int.Parse( imageSizeYRaw );
  28.  
  29.     Console.WriteLine( "Введите количество картин, например 52:" );
  30.     string imagesCountRaw = Console.ReadLine();
  31.     int imagesCount = int.Parse( imagesCountRaw );
  32.  
  33.     int imagesPerRow = 3;
  34.     bool enoughSpaceByX = Math.Min( imagesPerRow, imagesCount ) * imageSizeX <= zoneSizeX;
  35.     int rowsCount = (int)((imagesCount + imagesPerRow - 0.5) / imagesPerRow);
  36.     int rowsMaxCount = zoneSizeY / imageSizeY;
  37.     bool enoughSpaceByY = rowsCount <= rowsMaxCount;
  38.     bool enoughSpace = enoughSpaceByX && enoughSpaceByY;
  39.  
  40.     int finalRowsCount = Math.Min( rowsCount, rowsMaxCount );
  41.     int inRowsImagesCount = finalRowsCount * imagesPerRow;
  42.     int remainImagesCount = Math.Max( 0, imagesCount - inRowsImagesCount );
  43.  
  44.     string resultText;
  45.    
  46.     if ( enoughSpace )
  47.     {
  48.         resultText = $"Места хватит, все ок, влезут все {finalRowsCount} строк, содержащие {imagesCount} картинок";
  49.     }
  50.     else if(enoughSpaceByX)
  51.     {
  52.         resultText = $"Места недостаточно, влезут только {finalRowsCount} строк, содержащие {inRowsImagesCount} картинок, " +
  53.                      $"останется {remainImagesCount} картинок";
  54.     }
  55.     else
  56.     {
  57.         resultText = $"Слишком узкая зона, влезет {0} строк, останется {imagesCount} картинок";
  58.     }
  59.        
  60.  
  61.     Console.WriteLine( $"{resultText} \n" );
  62.     Console.WriteLine("Continue? Enter 'n' for exit");
  63.     var continueAnswer = Console.ReadLine();
  64.     var exitAnswer = "n";
  65.  
  66.     loopExitFlag = string.Equals( continueAnswer, exitAnswer );
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement