이 튜토리얼에서는 주어진 연산의 최소 수를 사용하여 숫자 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