В заданном числе определить цифру, которая встречается чаще всех - QBasic
Формулировка задачи:
Дано число 149162536496481100 ... 1000000.
(это запись квадратов всех натуральных чисел от 1 до 1000)
Определить самую высокочастотную цифру и ее количество
решение
программа сосчитала, что такая цифра 4 и встречается 700 раз.
Вопросы
1. насколько разумно приведенное решение?
2. есть ли иное (любое) решение?
Решение задачи: «В заданном числе определить цифру, которая встречается чаще всех»
textual
Листинг программы
DIM a(9) AS LONG, n AS LONG, m AS LONG, mx AS LONG, i AS LONG, k AS LONG FOR i = 1 TO 1000 n = i * i DO m = n MOD 10 a(m) = a(m) + 1 n = n \ 10 LOOP WHILE n NEXT i mx = a(0) FOR i = 1 TO 9 IF a(i) > mx THEN mx = a(i): k = i NEXT i PRINT k
Объяснение кода листинга программы
- Переменная
a
объявлена как массив из 9 элементов типаLONG
(целое число). - Переменная
n
инициализируется значениемi * i
, гдеi
— это номер текущего числа от 1 до 1000. - Переменная
m
инициализируется значением остатка от деленияn
на 10. - В цикле
DO-LOOP WHILE
происходит делениеn
на 10 и последующее наращивание значения переменнойm
до тех пор, покаn
не станет равным 0. - В каждой итерации цикла значение переменной
m
увеличивается на 1, что соответствует определению текущей цифры числа. - Значение переменной
a
соответствующее текущей цифре увеличивается на 1. - После завершения цикла, в переменной
mx
хранится максимальное количество повторений цифр в числе, а в переменнойk
— номер этой цифры в массивеa
. - В цикле
FOR
перебираются значения от 1 до 9, при этом проверяется, является ли текущее значение переменнойa
больше значения переменнойmx
. Если это так, то значение переменнойmx
обновляется, а значение переменнойk
присваивается текущему индексу. - После завершения цикла, выводится значение переменной
k
, которое соответствует номеру цифры, встречающейся в числе наибольшее количество раз.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д