Найти количество чисел (от 1 до миллиона), среди цифр которых есть 3 - QBasic
Формулировка задачи:
Даны натуральные числа от 1 до 1 000 000.
Сосчитать, сколько чисел содержат в своем написании
цифру 3.
решение
если вы посмотрите программу, то в строке 12 увидите, вместо
цифры 3, цифру 7. (!!) и подумаете - "опечатка".
Нет. Всё верно. Цифра 3 при записанном условии даст неверный
результат. Почему?
надо отметить, что все цифры (кроме 0) равноценны и их количество
одинаково.
Так почему автор поставил 7?
Листинг программы
- REM
- REM N = 737855
- REM
- CLS
- FOR x = 0 TO 9
- FOR y = 0 TO 9
- FOR z = 0 TO 9
- FOR u = 0 TO 9
- FOR v = 0 TO 9
- FOR w = 0 TO 9
- IF x * y * z * u * v * w MOD 7 = 0 THEN
- N = N + 1
- END IF
- NEXT w, v, u, z, y, x
- PRINT N - 1
- END
Решение задачи: «Найти количество чисел (от 1 до миллиона), среди цифр которых есть 3»
textual
Листинг программы
- DIM i AS LONG, n AS LONG
- FOR i = 1 TO 999999
- IF INSTR(STR$(i), "3") THEN n = n + 1
- NEXT i
- PRINT n
Объяснение кода листинга программы
В этом коде:
- DIM i AS LONG, n AS LONG — объявляются две переменные типа LONG (целочисленные) — i и n.
- FOR i = 1 TO 999999 — начинается цикл, который будет выполняться от i = 1 до i = 999999 (то есть перебирает все числа от 1 до 999999).
- IF INSTR(STR$(i),
3
) THEN n = n + 1 — проверяется, содержит ли строковое представление числа i (которое получается с помощью функции STR$) цифру 3. Если содержит, то к переменной n прибавляется 1. - NEXT i — выполняется следующая итерация цикла (переход к следующему числу).
- PRINT n — выводится значение переменной n (количество чисел, содержащих цифру 3).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д