Определить число c максимальным пpоизведением нечетныx цифр - C (СИ)
Формулировка задачи:
Здраствуйте. помогите с программой.
Даны натуральные m и n. Определить число c максимальным пpоизведением нечетныx цифр
Решение задачи: «Определить число c максимальным пpоизведением нечетныx цифр»
textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <Windows.h>
int Rasriad(int enterNumber)
{
int n = enterNumber, x = 0;
while (n != 0) {
n /= 10;
x++;
}
return x;
}
int main(void)
{
int m = 7895, n = 12345;
int m_number_length = 0, n_number_length = 0;
int result1 = 1, result2 = 1;
int i, j, decimal = 1, indexRas;
m_number_length = Rasriad(m);
n_number_length = Rasriad(n);
for (j = 1; j < m_number_length; j++)
decimal *= 10;
for (i = 1; i <= m_number_length; i++) {
indexRas = m / decimal % 10;
decimal /= 10;
printf("%d ", indexRas);
if (indexRas % 2 == 1)
result1 *= indexRas;
}
decimal = 1;
for (j = 1; j < n_number_length; j++)
decimal *= 10;
for (i = 1; i <= n_number_length; i++) {
indexRas = n / decimal % 10;
decimal /= 10;
printf("%d ", indexRas);
if (indexRas % 2 == 1)
result2 *= indexRas;
}
(result2 > result1) ? printf("Number 2") : (result2 < result1)? printf("Number 1"): printf("Equal");
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде есть две функции:
- Функция
Rasriadпринимает целое число в качестве аргумента и возвращает количество цифр в этом числе. Эта функция используется для определения длины чиселmиn. - Функция
mainявляется точкой входа в программу. Она инициализирует переменныеmиnсо значениями 7895 и 12345 соответственно. Затем функция определяет длину чиселmиnс помощью функцииRasriad. Затем в цикле перебираются цифры числаmс помощью двух циклов. Переменнаяdecimalиспользуется для хранения десятичного числа, которое используется для вычисления очередной цифры числаm. ПеременнаяindexRasиспользуется для хранения очередной цифры числаm. Если цифра нечетная, то она умножается наresult1. После этого цикл перебирает цифры числаnс помощью двух циклов. Переменнаяdecimalснова используется для хранения десятичного числа, которое используется для вычисления очередной цифры числаn. ПеременнаяindexRasиспользуется для хранения очередной цифры числаn. Если цифра нечетная, то она умножается наresult2. После этого сравниваются значенияresult1иresult2. Еслиresult2большеresult1, то выводится сообщениеNumber 2. Еслиresult2меньшеresult1, то выводится сообщениеNumber 1. Если значения равны, то выводится сообщениеEqual. Наконец, функцияsystemиспользуется для приостановки выполнения программы до тех пор, пока пользователь не нажмет любую клавишу.