Определение минимального счастливого числа в одномерном массиве - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д