Задача
Задан номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере.
Входные данные
В единственной строке задан номер мобильного телефона.
Выходные данные
В первой строке вывести количество отсутствующих в номере цифр. Во второй строке в порядке возрастания вывести отсутствующие цифры, разделенные пробелом.
Тесты
Входные данные | Выходные данные |
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 |
+38 (037) 123-4-765 | 1 9 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main (String[] args) throws Exception{ int code; int count = 0; int n[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while ((code = br.read()) != -1) { if (code >= 48 && code <= 57) n[code - 48]++; } for (int i = 0; i < 10; i++) { if (n[i] == 0) count++; } System.out.println(count); for (int i = 0; i < 10; i++) { if (n[i] == 0) System.out.print(i + " "); } } } |
Решение
Объявим массив на $10$ элементов, в котором будем хранить количество вхождений каждой цифры в номер телефона. Далее, посимвольно читаем входной поток и увеличиваем соответствующие каждой цифре элементы массива на $1$. После этого, находим количество нулевых элементов массива — это будет количество цифр, которые отсутствуют в номере. Наконец, выводим индексы нулевых элементов массива.
Ссылки
Условие задачи на e-olymp
Решение на ideone
Решение на e-olymp