
Очень срочно, C++. Напишите программу, которая будет считывать четырехзначное число и выводить 1,
если в нем ровно две одинаковые цифры, во всех остальных случаях программа выводит любое число.

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main()
{
int number;
cin >> number;
int array[4] = {};
array[0] = number / 1000;
array[1] = number % 1000 / 100;
array[2] = number % 1000 % 100 / 10;
array[3] = number % 10;
int counter;
int check = 0;
for (int i = 0; i < 4; i++)
{
counter = 0;
for (int j = 0; j < 4; j++)
{
if (array[i] == array[j])
{
counter++;
if (counter == 2)
{
check++;
}
}
}
}
if (check != 0)
{
cout << 1;
}
else
{
cout << 0;
}
}
Объяснение:
#include <iostream> // Библиотека ввода-вывода
using namespace std; // Пространство имён
int main()
{
int number; // Переменная для вводимого числа
cin >> number; // Ввод числа
int array[4] = {}; // Массив для хранения цифр числа
array[0] = number / 1000; // Первая цифра
array[1] = number % 1000 / 100; // Вторая цифра
array[2] = number % 1000 % 100 / 10; // Третья цифра
array[3] = number % 10; // Четвертая цифра
int counter; // Переменная для подсчёта одинаковых цифр
int check = 0; // Переменная для проверки на само условие задачи
for (int i = 0; i < 4; i++)
{
counter = 0; // Обнуление переменной
for (int j = 0; j < 4; j++)
{
if (array[i] == array[j]) // Если цифры равны
{
counter++; // Увеличиваем на 1
if (counter == 2) // Если количество цифр = 2
{
check++; // Увеличиваем на 1
}
}
}
}
if (check != 0) // Если не равно 0
{
cout << 1; // То выводим 1
}
else // Иначе
{
cout << 0; // Выводим 0 (любое значение)
}
}



Конечно! Вот пример программы на C++, которая выполняет описанную вами задачу:
cpp#include <iostream>
#include <unordered_set>
bool hasExactlyTwoSameDigits(int number) {
std::unordered_set<int> digits;
while (number > 0) {
int digit = number % 10;
if (digits.count(digit) > 0) {
return true;
}
digits.insert(digit);
number /= 10;
}
return false;
}
int main() {
int number;
std::cout << "Введите четырехзначное число: ";
std::cin >> number;
if (hasExactlyTwoSameDigits(number)) {
std::cout << "1\n";
} else {
std::cout << "Любое число\n";
}
return 0;
}
Программа сначала объявляет функцию hasExactlyTwoSameDigits
, которая проверяет, содержит ли число ровно две одинаковые цифры. В функции используется хеш-множество (unordered_set
) для отслеживания уже встреченных цифр.
Затем программа в main
считывает четырехзначное число с помощью std::cin
и вызывает функцию hasExactlyTwoSameDigits
. В зависимости от результата выводится "1", если в числе ровно две одинаковые цифры, или "Любое число" в противном случае.
Обратите внимание, что программа не проверяет корректность вводимых данных (например, что введено именно четырехзначное число). Если требуется такая проверка, ее можно добавить в код.


Похожие вопросы







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili