Advertisement
sergezhu

Untitled

Mar 30th, 2023
276
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.     Console.WriteLine( $"Размеры зоны: {zoneSizeX} x {zoneSizeY}" );
  17.    
  18.     Console.WriteLine( "Введите размеры места под одну картину:" );
  19.     Console.Write( "X : " );
  20.     string imageSizeXRaw = Console.ReadLine();
  21.     int imageSizeX = int.Parse( imageSizeXRaw );
  22.  
  23.     Console.Write( "Y : " );
  24.     string imageSizeYRaw = Console.ReadLine();
  25.     int imageSizeY = int.Parse( imageSizeYRaw );
  26.  
  27.     Console.WriteLine( "Введите количество картин, например 52:" );
  28.     string imagesCountRaw = Console.ReadLine();
  29.     int imagesCount = int.Parse( imagesCountRaw );
  30.  
  31.     int imagesPerRow = 3;
  32.     bool enoughSpaceByX = Math.Min( imagesPerRow, imagesCount ) * imageSizeX <= zoneSizeX;
  33.     int rowsCount = (int)((imagesCount + imagesPerRow - 0.5) / imagesPerRow);
  34.     int rowsMaxCount = zoneSizeY / imageSizeY;
  35.     bool enoughSpaceByY = rowsCount <= rowsMaxCount;
  36.     bool enoughSpace = enoughSpaceByX && enoughSpaceByY;
  37.  
  38.     int finalRowsCount = Math.Min( rowsCount, rowsMaxCount );
  39.     int inRowsImagesCount = finalRowsCount * imagesPerRow;
  40.     int remainImagesCount = Math.Max( 0, imagesCount - inRowsImagesCount );
  41.  
  42.     string resultText;
  43.    
  44.     if ( enoughSpace )
  45.     {
  46.         resultText = $"Места хватит, все ок, влезут все {finalRowsCount} строк, содержащие {imagesCount} картинок";
  47.     }
  48.     else if(enoughSpaceByX)
  49.     {
  50.         resultText = $"Места недостаточно, влезут только {finalRowsCount} строк, содержащие {inRowsImagesCount} картинок, " +
  51.                      $"останется {remainImagesCount} картинок";
  52.     }
  53.     else
  54.     {
  55.         resultText = $"Слишком узкая зона, влезет {0} строк, останется {imagesCount} картинок";
  56.     }
  57.        
  58.  
  59.     Console.WriteLine( $"{resultText} \n" );
  60.     Console.WriteLine("Continue? Enter 'n' for exit");
  61.     var continueAnswer = Console.ReadLine();
  62.     var exitAnswer = "n";
  63.  
  64.     loopExitFlag = string.Equals( continueAnswer, exitAnswer );
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement