Computer >> Máy Tính >  >> Lập trình >> C ++

Vị trí sau khi thực hiện N bước sang phải và sang trái theo cách thay thế trong C ++


Trong bài toán này, ta cho ba số nguyên N, A và B. Có một người đang đứng ở tọa độ 0 di chuyển

A bước sang phải rồi B ​​bước sang trái . Sau đó, một lần nữa đúng. Nhiệm vụ của chúng ta là in ra vị trí cuối cùng của phần tử sau khi N di chuyển.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào - N =4, A =3, B =1

Đầu ra -

Giải thích -

nước đi thứ nhất -> nước đi 3 phải, + nước đi thứ 32 -> bước sang trái 1, nước đi thứ 13 -> nước đi phải 3, + nước đi thứ 34 -> trái 1, -1. Vị trí sau 4 nước đi, + 3-1 + 3-1 =4.

Để giải quyết vấn đề này, chúng ta phải tìm tổng số bước của người đó, thực hiện các bước đi bên phải là tích cực và bước đi bên trái là tiêu cực. Tất cả các nước đi lẻ được thực hiện sang phải và các bước đi chẵn được thực hiện sang trái.

Tổng số bước đã thực hiện sẽ được tính theo công thức,

 Các bước =[((n + 1) / 2) * a - (n / 2) * b] 

Ví dụ

Chương trình hiển thị minh họa về giải pháp của chúng tôi,

 #include  using namespace std; void finalPosition (int n, int a, int b) {int steps ={((n + 1) / 2) * a - (n / 2) * b}; cout < 

Đầu ra

 Vị trí cuối cùng của người sau 4 bước là 4