Примеры программ на языке QBASIC

Поиск циклов при суммировании кубов цифр


REM Поиск циклов при суммировании кубов цифр
DECLARE FUNCTION nkub& (N&)
  DIM MAS&(100):  ' Массив для последовательности чисел
  CLS
  INPUT "Введите число - ", N&
  K = 0: MAS&(0) = N&
m1: K = K + 1: ' Счетчик числа шагов
  MAS&(K) = nkub&(MAS&(K - 1))
  PRINT "Шаг ="; K, " N ="; MAS&(K)
  FOR I = 0 TO K - 1: ' Поиск совпадения с предыдущими числами
    IF MAS&(I) = MAS&(K) THEN GOTO m2
  NEXT I
  GOTO m1
m2: PRINT "Обнаружен цикл": PRINT "Начало цикла шаг "; I
  PRINT "Конец цикла шаг "; K - 1
  END

FUNCTION nkub& (N&)
REM Преобразование числа в сумму кубов его цифр
  DIM S AS INTEGER, M AS LONG
  S = 0: M = N&
  WHILE M <> 0
    D = M MOD 10: M = (M - D) / 10: ' Выделение очередной цифры
    S = S + D * D * D: ' Накопление суммы кубов
  WEND
  nkub& = S
END FUNCTION