2016-11-12 5 views
-2

次の問題があり、難しかったです。私は3つの変数を定義しましたが、ループを使って私はこの作業を行うことができます。どんな助けもありがとう。3つのパラメータでループを実行

距離ランナーは、丘を走って強さとスタミナを作ります。ここでは、x、y、nという3つの整数パラメータによって決定されるヒルワークアウトの考え方を示します。 3番目のパラメータnは、丘の底から上までのマイル単位の距離です。ランナーは一番下から始まります。アイデアは、xマイルを上げてすぐに回り、yマイルを下げて、上に達するまでこのプロセスを繰り返します。ユーザーに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

関連する問題