我被给以下问题,并有困难。我定义了三个变量,但使用循环我应该能够做到这一点。任何帮助,将不胜感激。循环练习三个参数
远距离跑步者通过跑步起伏建立力量和耐力。这里是一个由三个整数参数决定的小山锻炼的想法:x,y和n。第三个参数n是从山丘底部到顶部的距离。跑步者从底部开始。这个想法是跑到x英里,然后立即转身跑下来,重复这个过程,直到达到最高点。编写一个程序,提示用户输入x,y和n,然后输出锻炼期间将运行的总距离,计算上坡部分和下坡部分。
我被给以下问题,并有困难。我定义了三个变量,但使用循环我应该能够做到这一点。任何帮助,将不胜感激。循环练习三个参数
远距离跑步者通过跑步起伏建立力量和耐力。这里是一个由三个整数参数决定的小山锻炼的想法:x,y和n。第三个参数n是从山丘底部到顶部的距离。跑步者从底部开始。这个想法是跑到x英里,然后立即转身跑下来,重复这个过程,直到达到最高点。编写一个程序,提示用户输入x,y和n,然后输出锻炼期间将运行的总距离,计算上坡部分和下坡部分。
所以,我的一般想法看起来像这样。注意:未测试。
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);
}
如果您可以向我们展示您的代码,那么也许我们可以改进它或提示提示! – LiXie
使用变量来跟踪高度和距离。将这两个初始化为0.在循环的每次迭代中,将x添加到高度。如果高度不超过n,则从高度减去y并将(x + y)加到距离上。如果将x添加到高度并且结果恰好为n,则只需将距离加上x即可完成循环。如果将x添加到高度并且结果超过n,则反转该添加,然后将(n-height)添加到距离并退出循环。 –
是否存在x> y的前提条件?否则,你永远不会到达顶端。 – Araymer