Функция Аккермана на С++ Требуется вычислить значение A(m,n) — где A это функция Аккермана.

Функция Аккермана определяется рекурсивно для неотрицательных целых чисел m и n следующим образом:

A(m,n)=n+1, при m=0
A(m,n)=A(m−1,1), при m>0, n=0
A,(m,n)=A(m−1,A(m,n−1)), при m>0, n>0

patik20001 patik20001    3   10.04.2021 21:40    3

Ответы
зайка584 зайка584  10.04.2021 22:00

#include <stdio.h>

 

unsigned akkerman(unsigned m, unsigned n) {

  return ( ! m ) ? n + 1 : ( ! n ) ? akkerman(m - 1, 1) : akkerman(m - 1, akkerman(m, n - 1));

}

 

int main(void) {

  unsigned m, n;

   

  while ( printf(" ") && scanf("%u%u", &m, &n) == 2 )

      printf("%u\n", akkerman(m, n));

   

  return 0;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика