首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 實現「大小勺子量水」邏輯題完整代碼解析

     編輯:程式設計綜合問答

題目描述

有一大勺(容量 11 兩)和一小勺(容量 7 兩),目標是量出恰好 2 兩水。只能通過裝滿、倒水、倒回等操作,求最少操作次數及過程。

核心思路

模擬倒水過程:每次將小勺裝滿倒入大勺,若大勺溢出,則計算小勺剩餘水量,將大勺倒空後把小勺剩餘水倒入大勺,繼續循環直到小勺剩餘 2 兩。

完整 Java 代碼實現

public class SpoonWater {
    public static void main(String[] args) {
        int cbig = 0; // 大勺當前水量
        int clit = 0; // 小勺當前水量
        int count = 0; // 操作次數

        while (clit != 2) {
            count++;
            clit = 7; // 小勺裝滿
            System.out.println("把小勺裝滿倒入大勺");

            if (cbig + 7 >= 11) { // 大勺會溢出
                clit = 7 - (11 - cbig); // 小勺剩餘水量
                System.out.println("小勺剩 " + clit + " 兩");
                System.out.println("大勺滿了,倒回去,把小勺剩下的 " + clit + " 兩倒入大勺");
                cbig = clit; // 大勺現在裝的是小勺剩下的水
            } else { // 大勺未滿
                System.out.println("小勺全部倒入大勺,小勺空了");
                System.out.println("大勺現有 " + cbig + " 兩");
                cbig = cbig + 7;
            }
        }
        System.out.println("總操作次數: " + count);
    }
}

運行結果說明

程序會逐步輸出每一步操作,最終輸出達到目標所需的總次數。這是一個經典的「水壺問題」變體,通過模擬法可直觀求解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved