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

Tìm số bước tối thiểu để từ N đến M trong C++


Cho N, M, tìm số bước tối thiểu từ N đến M với phép nhân 2 hoặc trừ 1. Ví dụ N=4, M=6 → 2 bước (4→3→6).

Đảo bài toán: từ M về N, phép chia 2 (nếu chẵn) hoặc cộng 1. Nếu N > M trả về hiệu. Nếu N < M, chia M cho 2 cho đến khi M < N, nếu M lẻ thì cộng 1 trước.

Ví dụ

#include<iostream> using namespace std; int countMinimumSteps(int n, int m) {    int count = 0;    while(m > n) {       if(m % 2 == 1) {          m++;          count++;       }       m /= 2;       count++;    }    return count + n - m; } int main() {    int n = 4, m = 6;    cout << "Minimum number of operations required: " << countMinimumSteps(n, m); }

Kết quả

Minimum number of operations required: 2