Определить, верно ли, что первая цифра данного числа — четная - C (СИ)
Формулировка задачи:
I Дано натуральное число:
1) найти две первые цифры числа
2) верно ли, что первая цифра данного числа - четная.
II Найти все трехзначные числа, которые состоят из разных цифр, а их сумма равна А (А вводится с клавиатуры).
Решение задачи: «Определить, верно ли, что первая цифра данного числа — четная»
textual
Листинг программы
int Digits(unsigned a)
{
return a < 100 ? a : Digits(a / 10);
}
Объяснение кода листинга программы
В данном коде определен рекурсивный функция Digits, которая принимает целое число a в качестве входного параметра. Основная цель функции - определить, является ли первая цифра числа a четной.
Рекурсивная функция работает следующим образом:
- Если
aменьше 100, то функция возвращаетa. Это базовый случай, когда числоaуже является однозначным, и его первая цифра может быть четной или нечетной. - В противном случае, функция вызывает саму себя, передавая в качестве аргумента результат деления
aна 10. Это делается для того, чтобы обработать каждую цифру числаaпо отдельности. - Внутри рекурсии функция проверяет первую цифру полученного числа. Если она четная, то функция возвращает эту цифру. Если она нечетная, то функция продолжает рекурсивно вызывать саму себя, пока не получит однозначное число.
- Если рекурсия доходит до базового случая и первая цифра числа четная, то функция возвращает эту цифру. Если первая цифра нечетная, то функция продолжает рекурсивно вызывать саму себя, пока не получит однозначное число.
- Если рекурсия доходит до максимального уровня (что происходит при числе, состоящем из более чем 10 цифр), то функция возвращает значение
INT_MAX, которое является максимально возможным значением для типа данныхint. Таким образом, функцияDigitsвозвращает первую четную цифру числаa, если она существует, иINT_MAXв противном случае.