با دو سطل با اندازههای متفاوت و این که ابتدا کدام سطل پر شود، تعیین کنید که با انتقال سنجیدهی مایع بین سطلها، برای اندازهگیری مقدار دقیقی از لیتر به چند عمل نیاز است.
چند قاعده وجود دارد که راهحل شما باید از آنها پیروی کند:
برنامهی شما این موارد را به عنوان ورودی میگیرد:
برنامهی شما باید اینها را تعیین کند:
نکته: هر بار که در یکی از سطلها یا هر دو تغییری داده شود، یک (۱) عمل به شمار میآید.
مثال: سطل اول میتواند تا ۷ لیتر را در خود نگه دارد و سطل دوم تا ۱۱ لیتر. فرض کنید در گامی مشخص، سطل اول ۷ لیتر و سطل دوم ۸ لیتر دارد (۷،۸). اگر سطل اول را خالی کنید و سطل دوم را تغییر ندهید، به طوری که به ترتیب ۰ لیتر و ۸ لیتر باقی بماند (۰،۸)، این یک عمل به شمار میآید. در عوض، اگر از سطل اول در سطل دوم ریخته باشید تا سطل دوم پر شود، به طوری که نتیجه ۴ لیتر در سطل اول و ۱۱ لیتر در سطل دوم باشد (۴،۱۱)، آن هم فقط یک عمل به شمار میآید.
مثال دیگر: سطل اول میتواند ۳ لیتر را در خود نگه دارد و سطل دوم تا ۵ لیتر. به شما گفته میشود که باید با سطل اول شروع کنید. بنابراین اولین عمل شما پر کردن سطل اول است. برای عمل دوم تصمیم میگیرید سطل اول را خالی کنید. برای عمل سوم، نمیتوانید سطل دوم را پر کنید، چون این کار قاعدهی سوم را نقض میکند: پس از هیچ عملی نباید به وضعیتی برسید که سطل شروع خالی و سطل دیگر پر باشد.
نوشتهشده با <3 در Fullstack Academy توسط Lindsay Levine.