C++ 中交替左右移动 N 步后的位置


在这个问题中,我们给出三个整数 N、A 和 B。一个人站在坐标 0 处,移动

向右移动 A 步,然后向左移动 B 步。然后再次向右移动。我们的任务是在 N 次移动后打印元素的最终位置。

让我们举个例子来理解这个问题,

输入 - N = 4,A = 3,B = 1

输出 -

解释 -

1st move -> right 3, +3
2nd move -> left 1, -1
3rd move -> right 3, +3
4th move -> left 1, -1.
Position after 4 moves, +3-1+3-1 = 4.

为了解决这个问题,我们必须找到这个人走过的总步数,将向右的步数视为正数,向左的步数视为负数。所有奇数步都向右移动,偶数步都向左移动。

总步数将根据以下公式计算:

Steps = [((n+1)/2)*a - (n/2)*b]

示例

程序展示了我们解决方案的示例:

 在线演示

#include <iostream>
using namespace std;
void finalPosition(int n, int a, int b) {
   int steps = {((n + 1)/2)*a - (n/2)*b};
   cout<<steps;
}
int main() {
   int N=4, A=3, B=1;
   cout<<"The final position of the person after "<<N<<" steps is ";
   finalPosition(N,A,B);
   return 0;
}

输出

The final position of the person after 4 steps is 4

更新于: 2020年4月17日

552 次浏览

开启你的 职业生涯

完成课程获得认证

立即开始
广告