在 C++ 中將三個數字變為零


假設我們有三個數字。任務是計算將所有這些數字都變成“0”所需的最佳步驟總數。

例如

輸入-1

a = 4
b = 4

c = 6

輸出

7

說明:將所有數字都變成“0”所需的最佳步驟總數為:

(4, 4, 6)

從第一個和第二個數字中減去“1” = (3, 3, 6)

從第一個和第三個數字中減去“1” = (2, 3, 5)

從第一個和第三個數字中減去“1” = (1 ,3, 4)

從第一個和第三個數字中減去“1” = (0 ,3 ,3)

從第二個和第三個數字中減去“1” = (0 ,2, 2)

從第二個和第三個數字中減去“1” = (0, 1, 1)

從第二個和第三個數字中減去“1” = (0, 0, 0)

因此,將所有數字都變成零的總步驟數為“7”

解決此問題的方法

為了解決這個問題,我們將從任意兩個數字中減去“1”,使得這兩個數字的和大於最後一個數字。為了找到使它們變為零的最小步驟數,我們將計算最小步驟數。

  • 將三個數字作為輸入。
  • 檢查兩個數字(例如“a”和“b”)的和是否大於“c”,並且 a > 0,b > 0,然後從“a”和“b”中減去“1”。
  • 從答案中找到最小值並返回結果。

示例

線上演示

#include <bits/stdc++.h>
using namespace std;
int maxSteps(int a, int b, int c) {
   int res = 0;
   while (a + b > c and a > 0 and b > 0) {
      a--;
      b--;
      res++;
   }
   res += min(c, a + b);
   return res;
}
int main() {
   int a = 4;
   int b = 4;
   int c = 6;
   cout << maxSteps(a, b, c) << endl;
   return 0;
}

執行以上程式碼將生成以下輸出:

輸出

 7

在給定的輸入中 a = 4,b = 4 且 c = 6,將所有數字都變成零需要七個步驟,因此程式返回輸出為 7。

更新於: 2021年2月23日

203 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.