Advertisement
sergezhu

Untitled

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