#include using namespace std; const int FINGERS_PER_PALM{4}; const int PALMS_PER_CUBIT{6}; const int GRAINS_PER_FINGER{1}; int ConvertToFingers(int fingers, int palms, int cubits); void GetInput(int & fingers, int & palms, int & cubits, string pos); void ReduceFingers(int totalFingers, int & fingers, int & palms, int & cubits); void PrintUnits(int fingers, int palms, int cubits); int main() { int inputCubits{0}, inputPalms{0}, inputFingers{0}; int fingers{0}, palms{0}, cubits{0}; int startFingers{0}, endFingers{0}; int totalFingers{0}; int rice{0}; // get the starting position GetInput(inputFingers, inputPalms, inputCubits, "starting"); startFingers = ConvertToFingers(inputFingers, inputPalms, inputCubits); // get the ending position GetInput(inputFingers, inputPalms, inputCubits, "ending"); endFingers = ConvertToFingers(inputFingers, inputPalms, inputCubits); cout << endl << endl; // find the totals totalFingers = endFingers - startFingers; rice = totalFingers * GRAINS_PER_FINGER; // convert start and print ReduceFingers(startFingers, fingers, palms, cubits); cout << "Nebi and Ako started at: "; PrintUnits(fingers, palms, cubits); cout << endl; // convert end and print ReduceFingers(endFingers, fingers, palms, cubits); cout << " ended at: "; PrintUnits(fingers, palms, cubits); cout << endl; // print the distance traveled ReduceFingers(totalFingers, fingers, palms, cubits); cout << "Distance Traveled : "; PrintUnits(fingers, palms, cubits); cout << endl; cout << "Total Rice: " << rice << " grains." << endl; return 0; } int ConvertToFingers(int fingers, int palms, int cubits) { int totalFingers{0}; totalFingers = fingers + palms * FINGERS_PER_PALM + cubits * PALMS_PER_CUBIT * FINGERS_PER_PALM; return totalFingers; } void GetInput(int & fingers, int & palms, int & cubits, string pos){ cout << "Enter the " << pos << " cubits => "; cin >> cubits; cout << "Enter the " << pos << " palms => "; cin >> palms; cout << "Enter the " << pos << " fingers => "; cin >> fingers; return; } void ReduceFingers(int totalFingers, int & fingers, int & palms, int & cubits){ fingers = totalFingers % FINGERS_PER_PALM; totalFingers /= FINGERS_PER_PALM; palms = totalFingers % PALMS_PER_CUBIT; cubits = totalFingers / PALMS_PER_CUBIT; return; } void PrintUnits(int fingers, int palms, int cubits){ cout << cubits << " cubits " << palms << " palms " << fingers << " fingers"; return; }