2016-11-12 44 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