이 문제에서 세 개의 정수 N, A, B가 주어졌습니다. 좌표 0에 서 있는 사람이 이동합니다.
오른쪽으로 한 걸음, 왼쪽으로 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