Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConsoleApp1;
- using System.Text;
- public class Task04
- {
- public void Run()
- {
- Console.InputEncoding = Encoding.Unicode;
- Console.OutputEncoding = Encoding.Unicode;
- bool canExit = false;
- while ( !canExit )
- {
- Console.WriteLine( "Введите размеры зоны" );
- Console.Write( "X : " );
- int zoneSizeX = int.Parse( Console.ReadLine() );
- Console.Write( "Y : " );
- int zoneSizeY = int.Parse( Console.ReadLine() );
- Console.WriteLine( $"Размеры зоны: {zoneSizeX} x {zoneSizeY}" );
- Console.WriteLine( "Введите размеры места под одну картину:" );
- Console.Write( "X : " );
- int imageSizeX = int.Parse( Console.ReadLine() );
- Console.Write( "Y : " );
- int imageSizeY = int.Parse( Console.ReadLine() );
- Console.WriteLine( "Введите количество картин, например 52:" );
- int imagesCount = int.Parse( Console.ReadLine() );
- int imagesPerRow = 3;
- bool hasEnoughSpaceByX = Math.Min( imagesPerRow, imagesCount ) * imageSizeX <= zoneSizeX;
- float indexCompensation = -0.5f;
- int rowsCount = (int)((imagesCount + imagesPerRow + indexCompensation) / imagesPerRow);
- int rowsMaxCount = zoneSizeY / imageSizeY;
- bool hasEnoughSpaceByY = rowsCount <= rowsMaxCount;
- bool hasEnoughSpace = hasEnoughSpaceByX && hasEnoughSpaceByY;
- int finalRowsCount = Math.Min( rowsCount, rowsMaxCount );
- int inRowsImagesCount = finalRowsCount * imagesPerRow;
- int remainImagesCount = Math.Max( 0, imagesCount - inRowsImagesCount );
- string resultText;
- if ( hasEnoughSpace )
- {
- resultText = $"Места хватит, все ок, влезут все {finalRowsCount} строк, содержащие {imagesCount} картинок";
- }
- else if(hasEnoughSpaceByX)
- {
- resultText = $"Места недостаточно, влезут только {finalRowsCount} строк, содержащие {inRowsImagesCount} картинок, " +
- $"останется {remainImagesCount} картинок";
- }
- else
- {
- resultText = $"Слишком узкая зона, влезет {0} строк, останется {imagesCount} картинок";
- }
- Console.WriteLine( $"{resultText} \n" );
- Console.WriteLine("Continue? Enter 'n' for exit");
- var continueAnswer = Console.ReadLine();
- var exitAnswer = "n";
- canExit = string.Equals( continueAnswer, exitAnswer );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement