Форум программистов, компьютерный форум CyberForum.ru

Самый самый самый простой пример рекурсии - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.70
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
02.12.2010, 20:39     Самый самый самый простой пример рекурсии #1
приведите самый прост пример рекурсии)))
C++
1
2
3
4
5
6
7
8
9
10
11
12
void main(int k)
{
    int n=10;
    k=n;
    k++;
    n=k;
 
    if(n!=20)main(n);
    cout<<n<<endl;
 
 
}
это рекурсия?Если да то почему n не выводится?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
02.12.2010, 20:42     Самый самый самый простой пример рекурсии #2
потому что n всегда равно 11.
И да, это рекурсия.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.12.2010, 20:42     Самый самый самый простой пример рекурсии #3
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
приведите самый прост пример рекурсии)))
Как бэ
C++
1
2
3
4
int fact(int n)
{
   return !n || n == 1? 1 : fact(n-1)*n;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.12.2010, 20:51     Самый самый самый простой пример рекурсии #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
^Tecktonik_KiLLeR, самое главное при написании рекурсивных функций - всегда должен достигаться базис рекурсии (случай, когда функция возвращает не результат своего вызова, а элементарное решение). Где у вас базис? Как, по-вашему, функция должна завершить рекурсивные вызовы, кроме как по переполнении стека?
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
02.12.2010, 21:12  [ТС]     Самый самый самый простой пример рекурсии #5
silent_1991, ну я же написал ,если не равно 20,то ++.То есть до тех пор пока не 20...разве не так?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.12.2010, 21:16     Самый самый самый простой пример рекурсии #6
Вы сами перечитайте свой код.
10 Ага, входим в функцию.
20 Тааак, n = 10.
30 k = n (k = 10).
40 k++ (11).
50 n = k (n = 11).
60 Если n != 20 рекурсивный вызов с параметром 11. Вход в функцию. n = 10. k (== 11) = 10... Чёрт, что-то не то..... GOTO 10
Хреново, не правда ли?
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
02.12.2010, 21:18  [ТС]     Самый самый самый простой пример рекурсии #7
silent_1991, да,но конец проги виден
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.12.2010, 21:20     Самый самый самый простой пример рекурсии #8
^Tecktonik_KiLLeR, кому виден? Если вы видите буёк и плывёте к нему, но вас постоянно волной назад отбрасывает, вы сможете дотронуться до буйка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2010, 21:33     Самый самый самый простой пример рекурсии
Еще ссылки по теме:

C++ Определить, какой сначала был день самый тёплый или самый холодный?
Нужно создать самый простой класс (С++) C++
C++ Самый простой, примитивный морской бой

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.12.2010, 21:33     Самый самый самый простой пример рекурсии #9
Простая рекурсия. Код из темы http://www.cyberforum.ru/cpp-beginne...939-page3.html.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   static int val = 1;
   while(val /* vanish */ --> 0)
   {
      (++ /* do black magic ! */  val) /* very black magic !!! */ ++;
      (val == 2 ? printf("WTF ??!") : val =- 1);
   }
 
   if(val<-15)
           return ((1<0?/* magic */100500:500?233?33?321?2223?0:0:0:0:0:0));
 
   return ((!!val==!!false)?val ==- 100500?5:1:main());
}
Yandex
Объявления
02.12.2010, 21:33     Самый самый самый простой пример рекурсии
Ответ Создать тему
Опции темы

Текущее время: 14:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru