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

更新日期: 2020 年 1 月 6 日

685 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告