• Предмет: Информатика
  • Автор: borisowskyleff
  • Вопрос задан 3 года назад

Ввести (с клавиатуры) непустую последовательность натуральных чисел
// (признак конца последовательности – 0). Вывести максимальное число
// этой последовательности и количество его вхождений. Требование:
// запрещено пользоваться операторами цикла, перехода, массивами, файлами
// (т.е. решать задачу надо рекурсивно).
Язык - pascal


BobbyFresnel: Всегда удивляли подобные задачи. "Съешьте тарелку борща, не пользуясь столовыми приборами и не отрывая тарелки от стола". Оно, конечно, съесть можно, макнувшись мордашкой в миску, но какой в этом смысл?
borisowskyleff: эта задача на тему множества/рекурсия, поэтому эти ограничения нужны чтобы решающий не отходил от темы
BobbyFresnel: Можно подумать, на рекурсию нет нормальных задач!
borisowskyleff: эта задача позиционируется преподавателем как сложная, и сложность ее как раз в этих ограничениях, тк без них ее довольно просто решить циклом
BobbyFresnel: Можно я не буду писать, что думаю о вашем преподавателе?
BobbyFresnel: Если коротко - гнать его надо.

Ответы

Ответ дал: BobbyFresnel
0

procedure Fool(var k, max: integer);

begin

 var n := ReadInteger;

 if n = 0 then exit;

 k += n;

 if n > max then

   max := n;

 Fool(k, max)

end;

begin

 var (n, nm) := (0, 0);

 Fool(n, nm);

 Print(n, nm)

end.

Приложения:
Вас заинтересует