Se citesc două numere naturale cu cel puțin 3 cifre. Afișați media aritmetică dintre cifrele unităților, media geometrică dintre cifrele zecilor celor două numere, câtul și restul împărțirii întregi dintre cele 2 numere. Vă rog, să fie după modelul din poza, va rogg!!

Răspunsuri la întrebare
Răspuns:
int GetDigitCount(int number)
{
int counter = 0;
while (number)
{
number /= 10;
++counter;
}
return counter;
}
int GetLastDigit(int number)
{
return number / 10;
}
int GetSecondLastDigit(int number)
{
return number / 100;
}
float GetArithmeticMean(int number1, int number2)
{
return (number1 + number2) / 2;
}
float GetGeometricMean(int number1, int number2)
{
float retVal = 1;
retVal *= number1;
retVal *= number2;
return std::pow(retVal, static_cast<float>(1) / 2);
}
int GetDivision(int number1, int number2)
{
return number1 / number2;
}
float GetRemainder(int number1, int number2)
{
return number1 % number2;
}
int main()
{
int number1, number2;
std::cin >> number1 >> number2;
if (GetDigitCount(number1) < 3 || GetDigitCount(number2) < 3)
{
std::cout << "Una din cifrele introduse nu este din 3 cifre. Oprim programul" << std::endl;
return;
}
int lastDigit1 = GetLastDigit(number1);
int lastDigit2 = GetLastDigit(number2);
float arithmeticMeanResult = GetArithmeticMean(lastDigit1, lastDigit2);
int secondToLastDigit1 = GetSecondLastDigit(number1);
int secondToLastDigit2 = GetSecondLastDigit(number2);
float geometricMeanResult = GetGeometricMean(secondToLastDigit1, secondToLastDigit2);
int divisionResult = GetDivision(number1, number2);
float remainderResult = GetRemainder(number1, number2);
std::cout << "Media aritmetica: " << arithmeticMeanResult << std::endl;
std::cout << "Media geometrica: " << geometricMeanResult << std::endl;
std::cout << "Catul impartirii: " << divisionResult << std::endl;
std::cout << "Restul impartirii: " << remainderResult << std::endl;
}
Explicație: