Найти числа, десятичная запись которых есть строго возрастающая или строго убывающая последовательность - C (СИ)
Формулировка задачи:
Решение задачи: «Найти числа, десятичная запись которых есть строго возрастающая или строго убывающая последовательность»
#include <stdio.h> int func(int a) { int t, t1, t2; t1=a%10; a/=10; t2=a%10; if(t1<t2) t=1; else if(t1>t2) t=0; else return 0; while(a/10) { t1=t2; a/=10; t2=a%10; if(t1>=t2 && t==1) return 0; if(t1<=t2 && t==0) return 0; } return 1; } int main() { int N; scanf("%d",&N); for(int i=10; i<N; i++) if(func(i)) printf("%d\n", i); return 0; }
Объяснение кода листинга программы
В этом коде определена функция с именем func, которая принимает целое число в качестве входного параметра. Внутри функции происходит деление этого числа на 10 и сохранение остатка в переменной t1. Затем число делится на 10 еще раз, и сохраняется новый остаток в переменной t2. Если t1 меньше t2, то число является возрастающей последовательностью, и переменная t устанавливается равной 1. Если t1 больше t2, то число является убывающей последовательностью, и переменная t устанавливается равной 0. Если t1 равно t2, то число не является ни возрастающей, ни убывающей последовательностью, и функция возвращает 0. Затем в функции начинается цикл while, который продолжается до тех пор, пока число не станет однозначным (делится на 10 без остатка). Внутри цикла происходит обновление t1 и t2, а также проверка условий для определения типа последовательности. Если число является возрастающей последовательностью и t равно 1, или если число является убывающей последовательностью и t равно 0, то функция возвращает 0. В функции main() считывается число N от пользователя. Затем в цикле for выполняется проверка функции func для каждого числа от 10 до N-1. Если функция func возвращает 1, то это число выводится на экран. Код, представленный в этом списке, выполняет следующие действия:
- Включает заголовочный файл stdio.h, который содержит функции ввода-вывода.
- Определяет функцию func с типом int, которая принимает int в качестве аргумента.
- Внутри функции func происходит деление введенного числа на 10 и сохранение остатка в переменной t1.
- Число делится на 10 еще раз, и сохраняется новый остаток в переменной t2.
- Если t1 меньше t2, то переменная t устанавливается равной 1. Если t1 больше t2, то переменная t устанавливается равной 0. Если t1 равно t2, то функция возвращает 0.
- Затем в функции начинается цикл while, который продолжается до тех пор, пока число не станет однозначным.
- Внутри цикла происходит обновление t1 и t2, а также проверка условий для определения типа последовательности.
- Если число является возрастающей последовательностью и t равно 1, или если число является убывающей последовательностью и t равно 0, то функция возвращает 0.
- В функции main() считывается число N от пользователя.
- Затем в цикле for выполняется проверка функции func для каждого числа от 10 до N-1.
- Если функция func возвращает 1, то это число выводится на экран.
- Функция main() возвращает 0, чтобы указать, что она успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д