Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Vị trí sau N bước đi phải và trái xen kẽ trong C++


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

A bước sang phải rồi B bước sang trái. Sau đó lại sang phải. Nhiệm vụ là in vị trí cuối cùng sau N bước di chuyển.

Ví dụ minh họa:

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

Kết quả -

Giải thích -

Bước 1 -> phải 3, +3 
Bước 2 -> trái 1, -1 
Bước 3 -> phải 3, +3 
Bước 4 -> trái 1, -1. 
Vị trí sau 4 bước: +3-1+3-1 = 4.

Để giải bài toán, tìm tổng số bước, tính bước phải dương, bước trái âm. Các bước lẻ sang phải, bước chẵn sang trái.

Tổng bước tính bằng công thức:

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

Chương trình minh họa

#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 << "Vị trí cuối cùng của người sau " << N << " bước là "; 
    finalPosition(N, A, B); 
    return 0; 
}

Kết quả

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