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

โค้ด C++ คำนวณการทดลองฟิสิกส์

สมมติว่าเรากำลังทดลองฟิสิกส์ กำหนด n คู่ค่าและค่าเกณฑ์ k ค่าแรกของแต่ละคู่บวกเข้ากับค่ารวมหนึ่ง ค่าที่สองบวกเข้ากับอีกค่ารวมหนึ่ง ตรวจสอบว่าค่ารวมนั้นน้อยกว่าหรือ (k - ค่ารวม) น้อยกว่า ทำกับทั้งสองค่ารวมแล้วบวกกันพิมพ์ผล

เช่น ถ้าอินพุตคือ n = 4, k = 20, values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}} เอาต์พุตจะเป็น 14

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

a := 0, b := 0
for i := 0 ถึง n-1:
    a := a + ค่าแรกของ values[i]
    b := b + ค่าที่สองของ values[i]
print(min(a, k - a) + min(b, k - b))

ตัวอย่างโค้ด

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

void solve(int n, int k, vector<pair<int,int>> values) {
    int a = 0, b = 0;
    for (int i = 0; i < n; i++) {
        a += values[i].first;
        b += values[i].second;
    }
    cout << min(a, k - a) + min(b, k - b);
}

int main() {
    int n = 4, k = 20;
    vector<pair<int,int>> values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}};
    solve(n, k, values);
    return 0;
}

อินพุต

4, 20, {{3, 5}, {4, 3}, {2, 1}, {4, 4}}

เอาต์พุต

14