3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
1

Рекурсии

07.12.2010, 15:22. Показов 1168. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решить задачу в консольном режиме:
Написать рекурсивную функцию для вычесления значения так называемой функции Аккермана для неотрицательных чисел n и m. Функция Аккермана определяется следующим образом :
m+1,если n=0;
A(n,m)=A(n-1,1),если n неравно 0,m=0;
A(n-1,A(n,m-1))если n>0, m>0;
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2010, 15:22
Ответы с готовыми решениями:

Рекурсии
Решить задачу в консольном режиме : Написать рекурсивную функцию для вычисления индекса...

Выход из рекурсии
private void ProcessLinks(string url, ref int step) { if (step >= deepness)...

Понимание рекурсии
Доброго всем времени суток! В статье на Хабре "Как я завалил собеседование в Twitter"...

Понимание рекурсии
Ребята. Подскажите как можно понять рекурсию. Плотно застрял нна рекурсивных алгоритмах. Никак не...

5
637 / 498 / 77
Регистрация: 28.07.2010
Сообщений: 895
07.12.2010, 17:08 2
как-то так:
C#
1
2
3
4
5
6
7
int A(int n, int m)
{
    if (n < 0 || m < 0) return -1;
    else if (n == 0) return m + 1;
    else if (n != 0 && m == 0) return A(n - 1, 1);
    else return A(n - 1, A(n, m - 1));
}
2
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
07.12.2010, 17:16 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
 
namespace A
{
    class P
    {
         static void Main()
         {
              Console.WriteLine("Enter n: ");
              int n=int.Parse(Console.ReadLine());
              Console.WriteLine("Enter m: ");
              int m=int.Parse(Console.ReadLine());
              Console.WriteLine("Res {0}", Akker(n, m));
          }
          
          static int Akker(int n, int m)
          {
               if(n == 0)
                  return m+1;
               else if(m == 0)
                    return Akker(n-1, 1);
               else if(n > 0 && m > 0)
                    return Akker(n-1, Akker(n, m-1));
               else
                    return 0;
            }
      }
 }
2
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
08.08.2013, 00:48 4
Спасибо!!!!!!!!!
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.08.2013, 00:53 5
Slavkan, некропостинг такой некропостинг
Правильней было бы:
C#
1
2
3
4
5
6
7
8
9
10
          static int Akker(int n, int m)
          {
               if(n == 0)
                  return m+1;
               else if(m == 0)
                    return Akker(n-1, 1);
               else if(n > 0 && m > 0)
                    return Akker(n-1, Akker(n, m-1));
               throw new ArhumentException("Both arguments are negatives");
            }
1
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
08.08.2013, 02:56 6
Цитата Сообщение от Psilon Посмотреть сообщение
Slavkan, некропостинг такой некропостинг
Правильней было бы:
C#
1
2
3
4
5
6
7
8
9
10
          static int Akker(int n, int m)
          {
               if(n == 0)
                  return m+1;
               else if(m == 0)
                    return Akker(n-1, 1);
               else if(n > 0 && m > 0)
                    return Akker(n-1, Akker(n, m-1));
               throw new ArhumentException("Both arguments are negatives");
            }
Учту)
0
08.08.2013, 02:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2013, 02:56
Помогаю со студенческими работами здесь

изменение рекурсии
помогите преобразоватъ код static void Stroka(int n) { for (int i = 1; i &lt;=...

Ограничить глубину рекурсии
Доброго времени суток! Помогите ограничить глубину рекурсии.. Есть код: public...

Как выйти из рекурсии?
Есть список. По разделительному слову я делю его на две части потом применяю рекурсию к левой и...

Как выйти из рекурсии?
Подскажите пожалуйста, как можно выйти из рекурсии? static double raschet(int r, int r1, int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru