Циклические башни
На дорогах Ханоя было введено одностороннее круговое движение, поэтому теперь диск со стержня 1 можно перекладывать только на стержень 2, со стержня 2 — на 3, а со стержня 3 — на 1.
Решите головоломку с учётом этих ограничений. Вам не нужно находить минимальное решение, но количество совершённых перемещений не должно быть больше 200000 при условии, что количество дисков не превосходит 10.
Входные данные
Задано натуральное число n≤10 — размер пирамидки.
Выходные данные
Программа должна вывести перекладывания пирамидки из данного числа дисков со стержня 1 на стержень 3.
FOR i = 1 TO 100
percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round)
x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу
IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму
PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет
END 'завершаем программу
END IF
NEXT i ' конец цикла
Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
DIM n AS INTEGER
INPUT "Введите кол-во студентов:", n
DIM studentYearsOld(1 TO n) AS INTEGER
DIM studentName(1 TO n) AS STRING
FOR i = 1 TO n
INPUT "Введите имя студента:", studentName(i)
INPUT "Введите год рождения студента:", studentYearsOld(i)
NEXT i
PRINT
FOR i = 1 TO n
PRINT "Студент "; studentName(i)
studentYrs = 2016 - studentYearsOld(i)
IF studentYrs < 18 THEN
PRINT "Лет до права голоса:"; 18 - studentYrs
ELSEIF studentYrs >= 18 THEN
PRINT "Студент уже имеет право голоса!"
PRINT
END IF
studentYrs = 0
NEXT i
Код валидный, если допустил ошибку во время переписывания - сообщите.