С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 5
1

Заменить циклы на рекурсию

12.01.2011, 20:18. Показов 1670. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста сделать рекурсию для циклов. Понятия не имею как она делается(

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "math.h"
 
int input();// Ввод N
int input2();// Ввод x
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    int N, i;
    double x, flag, S1, S2;
 
    
    N=input();// Ввод N
    x=input2();// Ввод x
 
 
    S1=sin(x);
    for(i=1; i<N; i++)
        {
            S1=S1*sin(x);
        }
    printf(" S1=%lf\n", S1);
 
 
    flag=x;
    for(i=1; i<N; i++)
        {
            flag=flag*x;            
        }
    S2=sin(flag);
    printf(" S2=%lf\n", S2);
 
 
    _getch();
    return 0;
}
 
 
int input()// Ввод N
{
    int N;
 
 
    printf("\n Введите натуральное число N: ");
    scanf("%d", &N);
    return N;
}
 
int input2()// Ввод x
{
    double x;
 
    printf("\n Введите вещественное число X: ");
    scanf("%lf", &x);
    return x;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2011, 20:18
Ответы с готовыми решениями:

Заменить цикл на рекурсию
Вообщем, есть цикл который считает простую задачу: Пусть V1=1, V2=2, Vi=2*Vi-1+3*Vi-2, i=3,4,… ....

Заменить цикл на рекурсию
a0=1, ak=k*ak-1+1/k, k=1,2,... . Дано n. Получить an. int cycle (int n){ double a0=1;...

Преобразовать вложенные циклы в рекурсию
Есть вот такое чудо: var word = ; var wordLength = word.length - 1; // делаем матрицу ...

Заменить в коде циклы for на циклы while
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2;...

3
Эксперт JavaЭксперт С++
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
13.01.2011, 13:05 2
Цитата Сообщение от Craager Посмотреть сообщение
Помогите пожалуйста сделать рекурсию для циклов
Что сделать? Я тоже понятия не имею о чем вы написали. Выложите полное задание
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.01.2011, 13:12 3
Craager, нужно заменить циклы на рекурсию, что ли?
0
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 5
13.01.2011, 18:35  [ТС] 4
Цитата Сообщение от Nameless One Посмотреть сообщение
Craager, нужно заменить циклы на рекурсию, что ли?
Да. Сам я чет не могу допереть как это делать =)
Вот программа с использованием рекурсии:
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
34
35
36
37
38
39
40
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "math.h"
 
int input(); //ввод N
double for4eg(int N); // вычисление P
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    
    int N;
 
    N=input(); //ввод N
    for4eg(N); // вычисление P
 
    printf("\nОтвет: P = %lf", for4eg(N));
 
    _getch();
    return 0;
}
 
 
    //ввод N
    int input()
    {
        int a;
        printf("Введите N:");
        scanf("%d", &a);
        return a;
    }
    
    // вычисление P
    double for4eg(int N)
    {
        if (N==1) return (1.0 + 1.0/pow(double(N),1.0/4.0));
        return (1.0 + 1.0/pow(double(N),1.0/4.0))*for4eg(N-1);
    }
0
13.01.2011, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2011, 18:35
Помогаю со студенческими работами здесь

Заменить рекурсию циклом
Не углубляясь в детали , суть задачи - удалять 1 элемент вектора и добавлять в конец 2 элемента с...

Заменить рекурсию на цикл
Как можно заменить данную рекурсию на цикл? #define pc putchar_unlocked void put (long long...

заменить рекурсию на цикл
Здравствуйте. У меня есть рекурсивная ф-ия, но глубина вызова довольно большая, в итоге стек...

Как заменить цикл while на рекурсию?
Как сделать в даной функции, вычисления через рекурсию, а не через цикл... тут происходит...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru