Дано число n вывести все цифры этого числа которые встречаются 2 и более раз . С++
Ответ нейросети
26 февраля 2025 13:17
Для решения задачи на C++, которая заключается в выводе всех цифр числа, встречающихся два и более раз, мы можем воспользоваться следующими шагами:
- Принять ввод: Ввести число
n(можно в форматеlong long, если планируется использовать большие числа). - Хранить частоту цифр: Использовать массив или вектор для хранения количества вхождений каждой из десяти цифр (от 0 до 9).
- Подсчитать частоту: Пройти по каждой цифре числа и увеличить её счётчик в массиве.
- Вывести результаты: Пройти по массиву частот и вывести те цифры, которые встречаются 2 и более раз.
Вот пример кода, который реализует приведённый алгоритм:
#include <iostream>
#include <vector>
int main() {
long long n; // Объявляем переменную для хранения числа
std::cout << "Введите число: ";
std::cin >> n; // Читаем число от пользователя
// Создаем вектор для хранения частоты каждой цифры (от 0 до 9)
std::vector<int> digitFrequency(10, 0);
// Обрабатываем число, пока оно не станет равным 0
while (n != 0) {
int digit = n % 10; // Получаем последнюю цифру числа
digitFrequency[digit]++; // Увеличиваем частоту этой цифры
n /= 10; // Убираем последнюю цифру
}
// Выводим цифры, которые встречаются 2 и более раз
std::cout << "Цифры, встречающиеся 2 и более раз: ";
bool found = false; // Флаг для отслеживания, были ли найдены повторяющиеся цифры
for (int i = 0; i < 10; i++) {
if (digitFrequency[i] >= 2) { // Если частота цифры 2 и более
std::cout << i << " "; // Выводим цифру
found = true; // Меняем значение флага
}
}
// Если цифр не найдено, выводим сообщение
if (!found) {
std::cout << "нет цифр, встречающихся 2 и более раз.";
}
std::cout << std::endl; // Переводим на новую строку
return 0;
}
Пошаговое объяснение:
Запросить число у пользователя. Мы используем
std::cinдля получения числаn, которое может быть достаточно большим, поэтому типlong longпозволяет хранить большие целые числа.Создание массива для подсчёта частоты цифр. Мы создаем вектор
digitFrequencyразмером 10 (для цифр от 0 до 9) и инициализируем его нулями. Каждый индекс в этом векторе будет представлять цифру, а значение в индексе — количество повторений этой цифры в числе.Цикл для обработки числа. Цикл
whileпродолжает выполняться, покаnне станет равным 0. Внутри цикла:- Мы берем последнюю цифру числа с помощью операции
n % 10. - Увеличиваем соответствующий элемент в векторе
digitFrequency. - Далее делаем целочисленное деление числа на 10, что убирает последнюю цифру.
- Мы берем последнюю цифру числа с помощью операции
Вывод цифр, которые встречаются два и более раз. После подсчёта частот мы проходим по всем возможным цифрам (от 0 до 9) и выводим те, для которых количество вхождений в векторе больше или равно 2.
Обработка случая, когда нет повторяющихся цифр. Если ни одна цифра не встретилась два или более раз, выдаем соответствующее сообщение.
Таким образом, данный код позволяет решить вашу задачу.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



