2011-04-01 39 views
-5

我被一個C++程序卡住了,這是一個任務。
請幫我一把。 請建議的方法,如果可能的話,
謝謝提前C++程序來解決問題

問題:

鑑於兩艘船,其中一個可容納一個升的水和其他可 容納b升確定在其中一個容器中準確獲得水升的步驟數量。

在開始時,兩艘船都是空的。以下操作被計數爲「步驟」:

  • 排空的容器中,
  • 填充的容器中,
  • 澆注水從一個容器到另一個,而不溢出,直至容器中的一個是 任完整或空白。

輸入

整數t,1 < =噸< = 100,表示的測試用例的數量,接着爲T輸入數據集合, 每個由三個正整數一個(該升第一容器可容納),數 b(升第二容器可容納)的(的 升水一個容器應包含的最終量)的數量,和c,不大於40000,分開給出。

+6

添加'家庭作業'標籤。我們不是在這裏爲你解決你的任務,但是如果你告訴我們你做了什麼嘗試,你做了什麼錯誤,也許我們可以給你一些提示,以便你可以自己解決。 – 2011-04-01 09:06:33

+4

你不知道如何解決這個問題或在C++中編寫代碼? – Winfred 2011-04-01 09:07:09

+0

告訴我們你到目前爲止所嘗試過的以及你被困住的地方。 (這個問題似乎是不完整的;如果'c'是'a'和'b'的最高公因子的倍數,那麼你只能得到'c'升的水。) – Hammerite 2011-04-01 09:07:46

回答

2

聽起來像一個不錯的簡單的數學作業。

我的建議是,暫時忽略任何編碼方面,並專注於人類如何處理它,因爲你手中有兩隻器皿。

您有3個變量,即您的容器的容量。 x和y在這將是您需要a和b工作的數量。鑑於在問題a中,b和c將被數字替換。

總之,AX + = C

因此,如果c是12,並且a是2,b是3。

你有 2X + 3B = 12

現在你有一個簡單的等式

鑑於你知道你想說12升,在你的腦海中鍛鍊,如果你自己做,你將如何解決它。

這聽起來像你要求功課。

+0

「所以,如果c是12,a是2,b是3。 將12升液體放入3升容器中將是一個真正的挑戰。 – 2011-04-01 09:22:01

+0

我知道,但它也是你必須接受你可能沒有準確地做到這一點的船隻:)但是,我讀它作爲c是目的地,你用a和b來填充它,但校長保持不變 – BugFinder 2011-04-01 10:12:34