Определение минимального счастливого числа в одномерном массиве - C (СИ)
Формулировка задачи:
Дан одномерный массив. Определить минимальное счастливое число среди чисел с четным количеством цифр. Счастливое число - это число, у которого сумма цифр первой половины числа равна сумме второй половины.
Решение задачи: «Определение минимального счастливого числа в одномерном массиве»
textual
Листинг программы
- #include <stdio.h>
- int countDigits(int num) //функция возвращает количество цифр в числе
- {
- int cnt;
- do
- {
- num = num / 10;
- cnt++;
- }
- while (num > 0)
- return cnt;
- }
- bool isHappyDigit(int num, int numLen) //функция определяет счастливое это число или нет
- {
- int j, n1, n2;
- for (j=0; j<numLen; j++)
- {
- if (j >= numLen/2)
- n1 += num % 10;
- else
- n2 += num % 10;
- num = num / 10;
- }
- return n1==n2;
- }
- int main()
- {
- int arrLen = 9;
- int a[arrLen] = {2332, 12, 123321, 567, 12345, 6667, 567890, 44455770, 99};
- int min = 0;
- int i, len;
- for (i=0; i<arrLen; i++)
- {
- len = countDigits(a[i]);
- if (len % 2 == 0) //если четное количество цифр
- {
- if (isHappyDigit(a[i], len))
- {
- if (min==0 || a[i]<min)
- min = a[i];
- }
- }
- }
- if (min == 0)
- printf ("Счастливое число не найдено");
- else
- printf ("Минимальное счастливое число - %d", min); //результат 99
- return 0;
- }
Объяснение кода листинга программы
- Включаем заголовочный файл
для использования функций ввода-вывода. - Функция countDigits(int num) возвращает количество цифр в числе num.
- Используем цикл do-while для деления числа на 10 и увеличения счётчика до тех пор, пока число больше нуля.
- Функция isHappyDigit(int num, int numLen) определяет счастливое это число или нет.
- Используем цикл for для проверки каждой цифры числа.
- Если количество цифр чётное, то проверяем, является ли число счастливым.
- Если число счастливое и min равно 0 или число меньше min, то min присваивается текущему числу.
- Если min всё ещё равно 0 после проверки всех чисел, выводим сообщение
Счастливое число не найдено
. - В противном случае выводим сообщение
Минимальное счастливое число — min
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д