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

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 trong C ++

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