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

รหัส C++ สำหรับการคำนวณการทดลองทางฟิสิกส์


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

ดังนั้น หากอินพุตเป็น n =4, k =20, ค่า ={{3, 5}, {4, 3}, {2, 1}, {4, 4}} ผลลัพธ์จะเป็น 14

ขั้นตอน

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

a := 0, b = 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   a := a + first value of values[i]
   b := b + second value of values[i]
print(min((a, k - a) + minimum of b and k - b))

ตัวอย่าง

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

#include <bits/stdc++.h>
using namespace std;
#define N 100
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