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

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

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

เช่น ถ้าค่าที่ป้อนเข้าเป็น a = 2; b = 3; c = 5 ผลลัพธ์จะได้ 1 เพราะเพิ่ม a หรือ b ขึ้น 1 ได้ (a + b) > c ดังนั้น 1 นาทีเพียงพอ

ขั้นตอนการแก้ปัญหา

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

กำหนดอาร์เรย์ A = { a, b, c } เรียงลำดับอาร์เรย์ A คืนค่า max(A[2] - A[1] - A[0] + 1, 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