Логическая задача - Pascal

Узнай цену своей работы

Формулировка задачи:

есть K людей и M монет. Найти: сколько получит последний человек монет, если первый взял себе самое большое количество монет но не более половины монет,второй взял самое большое количество монет с тех что остались но не более половины и так далее(каждый следующий брал себе максимально возможное количество монет с того что оставалось но не более половины с тех монет что оставались)

Решение задачи: «Логическая задача»

textual
Листинг программы
  1. var k,m:integer;
  2.  begin
  3.   write('k = ');readln(k);
  4.   write('m = ');readln(m);
  5.   repeat
  6.    m:=m-(m div 2);
  7.    dec(k)
  8.   until k=1;
  9.   print(m)
  10.  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут