Найти такие элементы (а также их сумму), в которых чередуются четные и нечетные цифры - C (СИ)
Формулировка задачи:
Народ, нужна помощь
-без использования массивов и промежуточных файлов для хранения всей последовательности
-В программе обязательно применение функций с передаваемыми параметрами.
И кто может, ссылку где подробно про эти параметры написано, пожалуйста.
Решение задачи: «Найти такие элементы (а также их сумму), в которых чередуются четные и нечетные цифры»
textual
Листинг программы
#include <stdio.h> #define test(a, b) ( ( (a) ^ (b) ) & 1 ) int check(unsigned n) { if ( n > 99 ) return ( test(n, n / 10) ) ? check(n / 10) : 0; else if ( n > 9 ) return test(n, n / 10); else return 0; } int main(void) { unsigned n; while ( printf("Number: ") && scanf("%u", &n) == 1 ) printf("%s\n", ( check(n) ) ? "OK" : "FAIL"); return 0; }
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода (stdio.h)
- Определяем функцию с именем test, которая принимает два целых числа a и b и возвращает 1, если их суммы цифр четных и нечетных — это чередуется, и 0 в противном случае.
- В функции проверки чисел (check) используем рекурсию для разбиения числа на десятки и проверяем условие чередования цифр.
- Если число больше 99, то рекурсивно вызываем функцию check для десятичной части числа.
- Если число больше 9, то проверяем условие чередования цифр.
- Если число меньше или равно 9, то возвращаем 0.
- В функции main считываем число с помощью функции scanf и выводим результат проверки с помощью функции printf.
- Повторяем этот процесс до тех пор, пока пользователь не введет число.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д