Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 연산의 최소 수를 사용하여 숫자 m을 n으로 변환

<시간/>

이 튜토리얼에서는 주어진 연산의 최소 수를 사용하여 숫자 m을 n으로 변환하는 프로그램에 대해 논의할 것입니다.

이를 위해 두 개의 정수 m과 n이 제공됩니다. 우리의 임무는 주어진 연산을 최소 횟수로 사용하여 정수 m을 n으로 변환하는 것입니다.

허용된 작업 -

  • 주어진 숫자에 2를 곱하세요

  • 주어진 숫자에서 하나 빼기

예시

#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;
}

출력

Minimum number of operations : 5