Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ นับจำนวนนาทีที่ต้องเพิ่มความยาวไม้ให้เป็นสามเหลี่ยม


สมมติว่าเรามีตัวเลขสามตัว a, b และ c มีสามแท่งที่มีความยาว a, b และ c ใน 1 นาที เราสามารถเลือกไม้หนึ่งอันใดอันหนึ่งและเพิ่มความยาวได้ 1 ซม. แต่เราไม่สามารถหักไม้ได้ เราต้องนับจำนวนนาทีขั้นต่ำที่จำเป็นในการเพิ่มความยาวและเราสามารถสร้างสามเหลี่ยมกับพวกมันได้

ดังนั้นหากอินพุตเป็นเหมือน a =2; ข =3; c =5 จากนั้นผลลัพธ์จะเป็น 1 เพราะโดยการเพิ่ม a หรือ b อันใดอันหนึ่งขึ้น 1 เราสามารถสร้างสามเหลี่ยม (a + b)> c ดังนั้นหนึ่งนาทีก็เพียงพอแล้ว

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

Define an array A = { a, b, c }
sort the array A
return maximum of (A[2] - A[1] - A[0] + 1) and 0

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;

int solve(int a, int b, int c) {
   vector<int> A = { a, b, c };
   sort(A.begin(), A.end());
   return max(A[2] - A[1] - A[0] + 1, 0);
}
int main() {
   int a = 2;
   int b = 3;
   int c = 5;
   cout << solve(a, b, c) << endl;
}

อินพุต

2, 3, 5

ผลลัพธ์

1