Найти количество разных цифр в числе произвольной длины - QBasic
Формулировка задачи:
Задано число произвольной длины.
Надо сосчитать в нем число разных цифр.
Это программа (мечта программиста) работает круто.
Решение задачи: «Найти количество разных цифр в числе произвольной длины»
textual
Листинг программы
CLS DIM s AS STRING s = "69573384757755" FOR i = 0 TO 9 n = n - (INSTR(s, CHR$(i + 48)) > 0) NEXT i PRINT n END
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Установка переменной
sравной строке69573384757755. - Создание переменной
iи установка её значения равным 0. - Создание переменной
nи установка её значения равным 10 (предполагается, что в числе произвольной длины будет максимум 10 цифр). - Запуск цикла
FORот 0 до 9 (для проверки каждой цифры от 0 до 9). - Внутри цикла выполняется следующее:
5.1. Выражение
INSTR(s, CHR$(i + 48))используется для поиска в строкеsцифры, чей код в таблице символов соответствует значению переменнойi(значение переменнойiувеличивается на 48 для получения соответствующего кода цифры от 0 до 9). 5.2. Если выражениеINSTR(s, CHR$(i + 48))больше 0, то это означает, что в строкеsесть цифра, чей код соответствует значению переменнойi, и в этом случае значение переменнойnуменьшается на 1 (предполагается, что каждая цифра встречается в числе только один раз). - Цикл завершается, и значение переменной
nвыводится на экран с помощью командыPRINT.