C/C++
Как проверить одинаковые числа в массиве без повторений на С++
Как можно проверить одинаковые числа в массиве без повторений? То есть компьютер загадал число, нам нужно угадать, и в процессе отгадывания узнать сколько уже угадали чисел. Всегда получается с повторениям (то есть число например 123, мы введем 122, программа обычной проверкой посчитает что угадано 3 числа, хотя угадали только 1 и 2)
разбираешь каждую цифру с помощью остатка от деления %
Александр Морев
числа в массиве, то есть число 123 в массиве из трех элементов, наше так же, или можно по другому?
#include <iostream>
#include <string>
#include <random>
#include <cmath>
using namespace std;
int main() {
system("chcp 1251 > nul");
auto length = 0U;
do {
cout << "Количество знаков в числе: ";
cin >> length;
} while (length > 19U || !length);
auto a = 1 * static_cast<unsigned long long>(pow(10ULL, length - 1));
auto b = a * 10 - 1;
uniform_int_distribution<unsigned long long> uid(a, b);
mt19937_64 gen{ random_device()() };
auto number = uid(gen);
auto str = to_string(number);
auto count = 0U;
auto attempt = 0ULL;
string src;
do {
do {
cout << "Ваше число: ";
cin >> attempt;
} while (length != static_cast<unsigned>(log10(attempt)) + 1);
++count;
src = to_string(attempt);
auto n = 0U;
for (auto i = 0U; i < length; ++i) if (src[i] == str[i]) ++n;
cout << "Количество совпадений: " << n << '\n';
} while (src != str);
cout << "Игра окончена. Количество попыток: " << count << '\n';
system("pause > nul");
}
#include <string>
#include <random>
#include <cmath>
using namespace std;
int main() {
system("chcp 1251 > nul");
auto length = 0U;
do {
cout << "Количество знаков в числе: ";
cin >> length;
} while (length > 19U || !length);
auto a = 1 * static_cast<unsigned long long>(pow(10ULL, length - 1));
auto b = a * 10 - 1;
uniform_int_distribution<unsigned long long> uid(a, b);
mt19937_64 gen{ random_device()() };
auto number = uid(gen);
auto str = to_string(number);
auto count = 0U;
auto attempt = 0ULL;
string src;
do {
do {
cout << "Ваше число: ";
cin >> attempt;
} while (length != static_cast<unsigned>(log10(attempt)) + 1);
++count;
src = to_string(attempt);
auto n = 0U;
for (auto i = 0U; i < length; ++i) if (src[i] == str[i]) ++n;
cout << "Количество совпадений: " << n << '\n';
} while (src != str);
cout << "Игра окончена. Количество попыток: " << count << '\n';
system("pause > nul");
}
<сколько уже угадали чисел>
может быть вернее угаданных цифр?
может быть вернее угаданных цифр?
Александр Кузнецов
Основная задача сводится к подсчету количества
одинковых цифр в двух числах.
Её решает функция Count
в ссылке ниже.
https://pastebin.com/hgS2F0dX
одинковых цифр в двух числах.
Её решает функция Count
в ссылке ниже.
https://pastebin.com/hgS2F0dX
Обратную проверку делай. Цикл от 0 до 9 - проверка всех цифр в числе - если цифра есть в числе - +1 к угаданному количеству, если нет - 0.
Александр Морев
числа в массиве, то есть число 123 в массиве 1,2,3 из трех элементов, наше так же
Владимир Сырчин
Тогда ваш вопрос задан таким образом, что ни один компьютерщик не поймет. Ну разве что он женского пола.
Дайте пример получше - несколько чисел в массиве, какое число искомое, почему у вас 122 = 123 ?
Дайте пример получше - несколько чисел в массиве, какое число искомое, почему у вас 122 = 123 ?
Похожие вопросы
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Найти наиболее часто встречаемое число в массиве на C++, используя только функции
- Код должен находить наименьшее число в массиве, но это всегда почему то 0. Где ошибка?
- Задача по С++, генератор случайных чисел(сортирует что бы не было одинаковых чисел))
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- Задача по Массивах С++ Дано натуральное число N...
- Можно ли через функцию memset записать число в элемент массива больше чем 255? (Си)
- Массив Х [36] целых элементов задать датчиком случайных чисел.
- Рекурс.функцию, которая принимает 2х-мерный массив целых чисел и кол-во сдвигов и выполняет круговой сдвиг массива влево