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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2013, 12:27   #1
novopashinmm
 
Регистрация: 27.06.2013
Сообщений: 7
По умолчанию Рекурсия задача из Крупника (изучаем Си)

Приведенная ниже программа выводит 1 2 3. Нужно написать примерно такую же программу, только которая выполняет сложение 1+2+3.
Листинг 4.10
Код:
#include <studio.h>
void CntTo3 (int);
void CntTo2 (int);
void CntTo1 (int);
int main()
{
int n;
CntTo3 (3);
return 0;
}
void CntTo3 (int p)
{
CntTo2 (p-1);
printf ("%d\n", p);
}
void CntTo2 (int p)
{
CntTo1 (p-1);
printf ("%d\n", p);
}
void CntTo1 (int p)
{
printf ("%d\n", p);
}

Последний раз редактировалось Stilet; 27.06.2013 в 12:30.
novopashinmm вне форума Ответить с цитированием
Старый 27.06.2013, 12:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
#include <studio.h>
void CntTo3 (int);
void CntTo2 (int);
void CntTo1 (int);
int main()
{
int n;
printf("%d",CntTo3 (3));
return 0;
}
int CntTo3 (int p){return p+CntTo2 (p-1);}
int CntTo2 (int p){return p+ (p-1);}
Только это ниразу не рекурсия )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2013, 12:40   #3
novopashinmm
 
Регистрация: 27.06.2013
Сообщений: 7
По умолчанию

да я понял, название главы просто так названо)
novopashinmm вне форума Ответить с цитированием
Старый 27.06.2013, 12:40   #4
novopashinmm
 
Регистрация: 27.06.2013
Сообщений: 7
По умолчанию

спасибо за решение)
novopashinmm вне форума Ответить с цитированием
Старый 27.06.2013, 12:41   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Рекурсия это когда функция вызывает сама себя

Код:
#include <stdio.h>
int CntTo3 (int);
int main()
{
printf("%d\n", CntTo3 (3));
return 0;
}

int CntTo3 (int p)
{
if (p == 0) return 0;
return (p + CntTo3 (p-1));
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изучаем паскаль. lara1 Фриланс 4 09.03.2010 23:08
Задача в паскале (рекурсия) Feil Помощь студентам 2 25.12.2009 12:04
Рекурсия - сложная задача! RomT24 Паскаль, Turbo Pascal, PascalABC.NET 5 06.05.2009 23:14