Задача
Дано натуральное число $N$. Сколько различных цифр встречается в его десятичной записи?
Вводные данные
Натуральное число $N$.
Выходные данные
Количество различных цифр.
Тесты
Входные данные | Выходные данные |
$1234$ | $4$ |
$100$ | $2$ |
$1234567890$ | $10$ |
$3333$ | $1$ |
$11112222$ | $2$ |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int[] folder = new int[10]; long N = in.nextLong(); while(N != 0) { folder[(int)N % 10]++; N /= 10; } int sum = 0; for (int i = 0; i < 10; i++) if(folder[i] != 0) sum++; System.out.print(sum); } } |
Решение задачи
Для решения задачи создадим массив folder в котором будем хранить количество встреч для различных цифр десятичной записи в соответствующих позициях массива. Находим цифры числа $N$($N \mod 10$ последняя цифра числа, затем $N / 10$). Увеличиваем на $1$ значения соответствующей позиции массива(цифра числа равна индексу массива). Для определения количества различных цифр делаем цикл и проверяем ненулевые значения массива folder. Задача решена.
Ссылки
Условие задачи(стр. 126).
Код решения на ideone.com