(Не)простая последовательность. Найти ошибку в коде - QBasic

  1. Задача Написать программу, которая распечатывает 20 членов случайной последовательности, обладающей следующими свойствами 1. последовательность состоит из чисел 1, 2, 3, 4 2. числа 1 и 3 не могут стоять рядом 3. числа 2 и 4 тоже не могут стоять рядом 4. каждое число может стоять в последовательности не более трёх раз подряд пример 1, 1, 1, 2, 3, 4, 4, 3, 3, 2, 1, 1, 4, 4, 4, 1, 4, 1, 2, 2 программа работает не совсем верно: она может выдать и 4 числа подряд. Проблему не решает даже второй счётчик (k, k2 - счётчики призванные контролировать повторение чисел)... подумал: может поставить счётчики на каждое число? нет, глупо, но где-то прокол?


textual

Код к задаче: «(Не)простая последовательность. Найти ошибку в коде - QBasic»

DIM i AS LONG, n AS LONG, n0 AS LONG, k AS LONG
RANDOMIZE TIMER
n = INT(RND * 4 + 1)
PRINT n;
FOR i = 2 TO 20
    n0 = n
    DO
        n = INT(RND * 4 + 1)
    LOOP WHILE ABS(n - n0) = 2 OR (n = n0 AND k >= 2)
    IF n = n0 THEN k = k + 1 ELSE k = 0
    PRINT n;
NEXT i
PRINT

СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 3.714 из 5



Похожие ответы
Для поиска решения или похожих решений вы можете воспользоваться "Поиском по сайту" или "Поиском по разделу"
Поиск по сайту