Задача Дирак - QBasic
Формулировка задачи:
Эту задачу придумал известный английский физик Поль Дирак.
“Три рыбака легли спать, не поделив улова. Проснувшийся ночью первый рыбак решил уйти, взяв свою долю. Но число рыб не делилось на три. Тогда он выбросил одну рыбу, а из числа оставшихся забрал треть. Второй и третий рыбаки поступили аналогично (выбросили по одной рыбе и взяли треть из оставшихся). Спрашивается, какое наименьшее количество рыб может удовлетворить условию задачи?”.
Решение задачи: «Задача Дирак»
textual
Листинг программы
DO r = r + 1 a = 2 / 3 * (2 / 3 * (2 / 3 * (r - 1) - 1) - 1) LOOP UNTIL a = INT(a) PRINT r
Объяснение кода листинга программы
В данном коде:
- Объявляются две переменные:
r
иa
. Значение переменнойr
увеличивается на единицу при каждой итерации цикла. - В каждой итерации цикла значение переменной
a
вычисляется как результат умножения двух дробей на значение переменнойr
. - Значение переменной
a
округляется до целого числа с помощью функцииINT()
. - Цикл выполняется до тех пор, пока значение переменной
a
не станет равным округленному значению переменнойr
. - После окончания цикла выводится значение переменной
r
.