Задача
Задан номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере.
Входные данные
В единственной строке задан номер мобильного телефона.
Выходные данные
В первой строке вывести количество отсутствующих в номере цифр. Во второй строке в порядке возрастания вывести отсутствующие цифры, разделенные пробелом.
Тесты
Входные данные | Выходные данные |
---|---|
0631562976 | 2 4 8 |
2139087 | 3 4 5 6 |
1111111111 | 9 0 2 3 4 5 6 7 8 9 |
7 | 9 0 1 2 3 4 5 6 8 9 |
4848 | 8 0 1 2 3 5 6 7 9 |
0921234567 | 1 8 |
6723545 | 4 0 1 8 9 |
9867453210 | 0 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std; int main() { // Номер мобильного телефона int c, count = 0; int n[] = {0,0,0,0,0,0,0,0,0,0}; while ((c = cin.get()) != EOF) { n[c - 48]++; } for (int i = 0; i < 10; i++) { if (n[i] == 0) count++; } cout << count << "\n"; for (int i = 0; i < 10; i++) { if (n[i] == 0) cout << i << " "; } return 0; } |
Решение
Объявим массив на $10$ элементов, в котором будем хранить количество вхождений каждой цифры в номер телефона. Далее, посимвольно читаем входной поток и увеличиваем соответствующие каждой цифре элементы массива на $1$. После этого, находим количество нулевых элементов массива — это будет количество цифр, которые отсутствуют в номере. Наконец, выводим индексы нулевых элементов массива.
Ссылки
Условия задачи на e-olymp
Код задачи на ideone