Логическая задача - Pascal
Формулировка задачи:
есть K людей и M монет. Найти: сколько получит последний человек монет, если первый взял себе самое большое количество монет но не более половины монет,второй взял самое большое количество монет с тех что остались но не более половины и так далее(каждый следующий брал себе максимально возможное количество монет с того что оставалось но не более половины с тех монет что оставались)
Решение задачи: «Логическая задача»
textual
Листинг программы
- var k,m:integer;
- begin
- write('k = ');readln(k);
- write('m = ');readln(m);
- repeat
- m:=m-(m div 2);
- dec(k)
- until k=1;
- print(m)
- end.
Объяснение кода листинга программы
- Объявляются переменные
k
иm
типа integer. - Пользователю выводится строка
k =
, после чего вводится значение переменнойk
. - Пользователю выводится строка
m =
, после чего вводится значение переменнойm
. - Запускается цикл repeat-until, в котором выполняются следующие действия:
- Переменная
m
уменьшается на целую часть от деленияm
на 2. - Переменная
k
уменьшается на 1. - Цикл выполняется до тех пор, пока значение переменной
k
не станет равным 1.
- Переменная
- Выводится значение переменной
m
. Таким образом, код принимает значенияk
иm
от пользователя, выполняет некоторые операции с переменными в цикле и выводит измененное значение переменнойm
после завершения цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д