A practice in int/float handling and structs

This commit is contained in:
Pim Nelissen
2025-11-03 16:17:47 +01:00
parent ce193a3e8b
commit d9dd4c7481

37
EmpiricalMass/main.cpp Normal file
View File

@ -0,0 +1,37 @@
#include <iostream>
#include <cmath>
using namespace std;
struct Isotope
{
int A{};
int Z{};
};
float empiricalMass(Isotope iso) {
int N = iso.A - iso.Z;
int delta = -1;
if (iso.A % 2 != 0) {
delta = 0; // mixed parity
} else if (iso.Z % 2 == 0 && N % 2 == 0) {
delta = 1; // even-even parity
}
float B = 15.75 * iso.A - 94.8 * pow((iso.A/2. - iso.Z), 2.) / iso.A
- 17.8 * pow(iso.A, 2./3.) - 0.71 * pow(iso.Z, 2.) * pow(iso.A, -1./3.)
+ 34 * delta * pow(iso.A, -3./4.);
return B/iso.A;
}
int main()
{
Isotope U235{ 235, 92 };
float mass = empiricalMass(U235);
cout << "U235: ";
cout << mass;
cout << " MeV per nucleon\n";
return 0;
}