Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để chuyển đổi một số m thành n bằng cách sử dụng số lượng tối thiểu các phép toán nhất định.
Đối với điều này, chúng tôi sẽ được cung cấp với hai số nguyên m và n. Nhiệm vụ của chúng ta là chuyển đổi số nguyên m thành n bằng các phép toán đã cho ít lần nhất.
Hoạt động được phép -
-
Nhân số đã cho với 2
-
Trừ một số cho một số đã cho
Ví dụ
#include <bits/stdc++.h> using namespace std; //finding minimum number of operations required int convert(int m, int n){ if (m == n) return 0; if (m > n) return m - n; //can't convert in this situation if (m <= 0 && n > 0) return -1; //when n is greater and n is odd if (n % 2 == 1) //performing '-1' on m return 1 + convert(m, n + 1); //when n is even else //performing '*2' on m return 1 + convert(m, n / 2); } int main(){ int m = 5, n = 11; cout << "Minimum number of operations : " << convert(m, n); return 0; }
Đầu ra
Minimum number of operations : 5