使用 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
廣告