В заданном числе определить цифру, которая встречается чаще всех - 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

Объяснение кода листинга программы

  1. Переменная a объявлена как массив из 9 элементов типа LONG (целое число).
  2. Переменная n инициализируется значением i * i, где i — это номер текущего числа от 1 до 1000.
  3. Переменная m инициализируется значением остатка от деления n на 10.
  4. В цикле DO-LOOP WHILE происходит деление n на 10 и последующее наращивание значения переменной m до тех пор, пока n не станет равным 0.
  5. В каждой итерации цикла значение переменной m увеличивается на 1, что соответствует определению текущей цифры числа.
  6. Значение переменной a соответствующее текущей цифре увеличивается на 1.
  7. После завершения цикла, в переменной mx хранится максимальное количество повторений цифр в числе, а в переменной k — номер этой цифры в массиве a.
  8. В цикле FOR перебираются значения от 1 до 9, при этом проверяется, является ли текущее значение переменной a больше значения переменной mx. Если это так, то значение переменной mx обновляется, а значение переменной k присваивается текущему индексу.
  9. После завершения цикла, выводится значение переменной k, которое соответствует номеру цифры, встречающейся в числе наибольшее количество раз.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы