2016-11-12 79 views
-2

我被給以下問題,並有困難。我定義了三個變量,但使用循環我應該能夠做到這一點。任何幫助,將不勝感激。循環練習三個參數

遠距離跑步者通過跑步起伏建立力量和耐力。這裏是一個由三個整數參數決定的小山鍛鍊的想法:x,y和n。第三個參數n是從山丘底部到頂部的距離。跑步者從底部開始。這個想法是跑到x英里,然後立即轉身跑下來,重複這個過程,直到達到最高點。編寫一個程序,提示用戶輸入x,y和n,然後輸出鍛鍊期間將運行的總距離,計算上坡部分和下坡部分。

+1

如果您可以向我們展示您的代碼,那麼也許我們可以改進它或提示提示! – LiXie

+0

使用變量來跟蹤高度和距離。將這兩個初始化爲0.在循環的每次迭代中,將x添加到高度。如果高度不超過n,則從高度減去y並將(x + y)加到距離上。如果將x添加到高度並且結果恰好爲n,則只需將距離加上x即可完成循環。如果將x添加到高度並且結果超過n,則反轉該添加,然後將(n-height)添加到距離並退出循環。 –

+0

是否存在x> y的前提條件?否則,你永遠不會到達頂端。 – Araymer

回答

0

所以,我的一般想法看起來像這樣。注意:未測試。

public void runDistance(int x, int y, int n) { 
    int distanceRun = 0; 
    int elevation = 0; 


    //Takes us to one run shy of the top of the hill 
    while(elevation+(x) < n) { 
     elevation+=(x-y); 
     distanceRun+=x+y; 
    } 


    //adds the last bit of distance to the top of the hill (since we won't be running back down again) 
    //We don't want to add the full x distance because that might be more than the hill. We just want to add what's left. 
    if(elevation < n) { 
     distanceRun+=(n-elevation); 
    } 


    System.out.println("Total distance run: " + distanceRun); 


} 
+1

非常感謝!你給了我最後一點我需要完成的代碼。我對java比較陌生,但+ =和x = x + y是一樣的嗎? – screech43

+0

正確,它只是速記。 – Araymer