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

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

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

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

22.06.2013, 12:49. Просмотров 267. Ответов 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++
C++ Инкремент в рекурсии
C++ Возврат рекурсии
C++ Использование рекурсии
Запутался в Рекурсии C++
Корректировка в рекурсии C++
Вопрос по рекурсии C++
C++ сложности по рекурсии в С++
C++ С Использованием рекурсии!
C++ Использование рекурсии
C++ из рекурсии - цикл

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
22.06.2013, 13:11     нужен ли while в рекурсии? #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  [ТС]     нужен ли while в рекурсии? #3
Спасибо большое за помощь)
Yandex
Объявления
22.06.2013, 13:13     нужен ли while в рекурсии?
Ответ Создать тему
Опции темы

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