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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
#1

нужен ли while в рекурсии? - C++

22.06.2013, 12:49. Просмотров 271. Ответов 2
Метки нет (Все метки)

Сказали переделать код, нужно что то сделать с while. Что не так объясните)

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
29
30
31
32
33
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
 
double sum(int n, int x, int e)
{
double y = (2*n-1)*pow((double)x,2*n+1)/(2*n*(2*n+1));
 
while (fabs(y) > e) y+=sum(n+1, x, e);
 
return y; 
}
 
void mform(int x_nachalo, int x_konec, int dx, int e)
{
int n = 1;
for (int x = x_nachalo; x<=x_konec; x+=dx)
printf("For x: %d \n Sum: %lf \n\n", x, x+sum(n, x, e));
}
 
void main(){
setlocale(0, "Russian");
 
int e, n=1, x_nachalo, x_konec, dx;
printf("Введите начальное значение X , конечное значения X и шаг:\n");
scanf("%d%d%d", &x_nachalo,&x_konec,&dx);
printf("Введите допустимое отклонение:\n");
scanf("%d", &e);
 
mform(x_nachalo, x_konec, dx, e);
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужен ли while в рекурсии? (C++):

Написано рекрусивно. нужен код без рекурсии.! - C++
int per (int k) { int i; for(i=1;i&lt;=n;i++) { if (color==0) ...

Нужен пример косвенной рекурсии - C (СИ)
Ребят,ни у кого не завалялась задача на косвенную рекурсию? Буду очень благодарен.

Рекурсии - C (СИ)
Ребят,программа по задаче 22 из ЕГЭ. При вводе программа зависает. #include &lt;stdio.h&gt; int f(int n,int c) { if(n&lt;1) return...

рекурсии... - C++
задание: Во входном файле задано без ошибок логическое выражение следующего вида : &lt;логическое выражение&gt;::=...

Рекурсии - PascalABC.NET
Заданы два числа X(любое) и N(целое). Вычислить sin(sin(sin(…sin(X)…))) N раз, при помощи рекурсии С рекурсиями совсем глухо, не...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
22.06.2013, 13:11 #2
while это цикл. Но у вас сразу в теле цикла идет рекурсивный вызов y+=sum(n+1, x, e);
т.е получается, что смысл цикла сводится к простой прокерке условия рекурсивного вызова => замените цикл на обычное условие.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
double sum(int n, int x, int e)
{
     double y = (2*n-1)*pow((double)x,2*n+1)/(2*n*(2*n+1));
 
     if (fabs(y) > e) y+=sum(n+1, x, e);
 
     return y; 
}
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
22.06.2013, 13:13  [ТС] #3
Спасибо большое за помощь)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2013, 13:13
Привет! Вот еще темы с ответами:

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

рекурсии - C (СИ)
Помогите пожалуйста как написать рекурсивную программу для нахождения суммы первых членов арифметической прогрессии если известны первый...

задания по рекурсии - Lisp
Помогите кому не сложно 1) Реализовать функцию, меняющую местами первый и последний элементы исходного списка 2) Реализовать функцию,...

Корректировка в рекурсии - C++
Возникла проблема в несложной задаче. Решать задачу конечно же не требуется, просто отккоректировать в плане рекурсии. Вот условие:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru