Логическая задача - 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.

Объяснение кода листинга программы

  1. Объявляются переменные k и m типа integer.
  2. Пользователю выводится строка k =, после чего вводится значение переменной k.
  3. Пользователю выводится строка m =, после чего вводится значение переменной m.
  4. Запускается цикл repeat-until, в котором выполняются следующие действия:
    • Переменная m уменьшается на целую часть от деления m на 2.
    • Переменная k уменьшается на 1.
    • Цикл выполняется до тех пор, пока значение переменной k не станет равным 1.
  5. Выводится значение переменной m. Таким образом, код принимает значения k и m от пользователя, выполняет некоторые операции с переменными в цикле и выводит измененное значение переменной m после завершения цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5