As we know the valance number is the number that defines how-many bonds the atom must form with other atoms. We have the valance numbers of three atoms. We have to check whether they can make one molecule or not. Atoms can form multiple bonds with each other. So if the valance numbers are 2, 4, 2, then the output will be YES. As the bonds are like below −
1 – 2, 1 – 2, 2 – 3, 2 – 3.
Suppose the valance numbers are a, b and c. Consider c is largest. Then we have two cases in which they cannot form molecule −
- a + b + c is odd. Since every bond decreases the valance number of two atoms by 1, then the sum will be even number
- a + b < c, in this situation some unused connectors will be there.
Example
#include<iostream>
using namespace std;
bool canMakeMolecule(int a, int b, int c) {
if ((a + b + c) % 2 != 0 || a + b < c)
return false;
else
return true;
}
int main() {
int a = 2, b = 4, c = 2;
if(canMakeMolecule(a, b, c)){
cout << "They can form Molecule";
} else {
cout << "They can not form Molecule";
}
}Output
They can form Molecule