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
广告