在 C++ 中將三個數字變為零
假設我們有三個數字。任務是計算將所有這些數字都變成“0”所需的最佳步驟總數。
例如
輸入-1
a = 4 b = 4c = 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。
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP