Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 21:39   #1
dixonich
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 79
По умолчанию Простая рекурсия.

Код:
#include<iostream>
using namespace std;
int rekurs(int n) {
	if(n<=1) 
		return n;
	else {
		n--;
		return rekurs(n);
		}
}
int main() {
	int n=10;
	while(n!=0)
	cout<<rekurs(n)<<endl;
}
вопрос : в чём проблема? почему не работает?
dixonich вне форума Ответить с цитированием
Старый 21.04.2011, 22:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Почему вы решили, что не работает? Кстати, цикл у вас будет вечным...
p51x вне форума Ответить с цитированием
Старый 21.04.2011, 23:46   #3
dixonich
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 79
По умолчанию

да, я уже понял. поменял на 1, но, всё же потом понял, что он мне просто из любого числа сделает единицу.
Код:
if(n<=1) 
          return n;
     else {
          cout<<n--;
          return rekurs(n);
          }
так всё ок
dixonich вне форума Ответить с цитированием
Старый 22.04.2011, 06:33   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Он делает ровно то, что вы написали. Не ленитесь посмотрите, что будет при начальном n = 2 хотя бы.

П.С. Намек: при рекурсивном спуске текущий результат тоже надо учитывать.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая задача cundpom Помощь студентам 3 18.12.2010 01:08
Простая программа Freeman-des Помощь студентам 1 02.12.2010 18:07
Простая анимация ghostcoder Общие вопросы Delphi 2 20.04.2010 19:56
Простая задачка stomp Общие вопросы C/C++ 4 02.05.2009 04:00