在C ++中以交替方式向左右移动N步后的位置

在这个问题中,我们得到三个整数N,A和B。有一个人站在坐标0处

向右,然后乙步骤A步骤向左。然后再次正确。我们的任务是在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