Конечно! Ниже приведено подробное решение задачи на языке C++. Мы создадим две функции: IsCorrect и IsPres, а также решим задачу подсчета количества нечётных чисел с определенной цифрой на интервале [a, b]. Объяснения будут пошаговые, чтобы было понятно, как всё работает.
Общее описание
Функция
IsCorrect(int n1, int n2)
Проверяет, является ли интервал[n1, n2]корректным.
— корректный, еслиn1 <= n2.Функция
IsPres(int n, int m)
Проверяет, содержит ли числоnцифруm.
— для этого последовательно сравниваем каждую цифру числаnсm.Основная логика
— пользователь вводит диапазон[a, b]и цифруm.
— программа подсчитывает числа в диапазоне, которые нечётные и содержат цифруm.
Код решения
#include <iostream>
using namespace std;
// Проверка правильности интервала
bool IsCorrect(int n1, int n2) {
return n1 <= n2;
}
// Проверка, содержит ли число n цифру m
bool IsPres(int n, int m) {
int digit;
while (n > 0) {
digit = n % 10; // извлекаем последнюю цифру
if (digit == m) {
return true; // нашли нужную цифру
}
n /= 10; // удаляем последнюю цифру
}
return false; // цифра не найдена
}
int main() {
int a, b, m;
cout << "Введите диапазон [a, b]: ";
cin >> a >> b;
cout << "Введите цифру m: ";
cin >> m;
// Проверка корректности интервала
if (!IsCorrect(a, b)) {
cout << "Некорректный интервал." << endl;
return 1;
}
int count = 0;
for (int num = a; num <= b; num++) {
// Проверка, что число нечётное и содержит цифру m
if (num % 2 != 0 && IsPres(num, m)) {
count++;
}
}
cout << "Количество нечётных чисел, содержащих цифру " << m << ": " << count << endl;
return 0;
}
Объяснение кода
Проверка интервала
IsCorrectвозвращаетtrue, еслиn1 <= n2, иначе —false.Проверка содержания цифры
IsPresпоследовательно извлекает каждую цифру числаnи сравнивает сm.
Если нашли, возвращаемtrue, иначе —false.Основная часть
— Вводим диапазон и нужную цифру.
— Проверяем его корректность.
— Перебираем все числа в диапазоне[a, b].
— Для каждого числа проверяем два условия: число нечётное (num % 2 != 0) и содержит ли оно цифруm(IsPres).
— Если оба условия выполняются, увеличиваем счётчик.Вывод результата
— После обработки диапазона выводим количество подходящих чисел.
Если потребуется более подробное пояснение или объяснение отдельных частей, пожалуйста, скажите!