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

рекурсия - C++

Восстановить пароль Регистрация
 
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
20.01.2013, 22:26     рекурсия #1
Добрый вечер!
Пожалуйста, помогите разобраться с рекурсией. Как ее вычислять, когда у меня есть всего один аргумент, я, вроде бы, понимаю, но вот что делать, если их несколько?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include<locale.h>
using namespace std;
double  stoimost_producta (double cena, double col);
    void main()
    {
        /*Написать программу, которая выводит на экран стоимость, например, яблок
        */
        double rez = 0,  stoimost,  gramm; 
        cout<<" stoimost = "<<endl;
        cin>>stoimost;
        cout<<" gramm = "<<endl;
        cin>>gramm;
        rez = stoimost_producta (stoimost, gramm);
cout<<"rez = "<<rez<<endl;
    }
    double stoimost_producta (double cena, double col)
    {
        double otvet = 1;
        return otvet = otvet * stoimost_producta (cena, col);
    }
программа запускается, но результат не выводит(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 22:26     рекурсия
Посмотрите здесь:

Рекурсия C++
Рекурсия C++
C++ рекурсия
Рекурсия C++
Рекурсия C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.01.2013, 22:31     рекурсия #2
при чём тут вообще рекурсия?
C++
1
2
3
4
  double stoimost_producta (double cena, double col)
    {
        return otvet = cena*col;
    }
Рекурсия используется тогда, когда задачу можно разбить на подзадачи, решаемые по тому же алгоритму.
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
20.01.2013, 22:33  [ТС]     рекурсия #3
просто хотела решить задачу при помощи рекурсии.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.01.2013, 22:34     рекурсия #4
Рекурсия используется тогда, когда задачу можно разбить на подзадачи, решаемые по тому же алгоритму.
Например задача:"сосчитать сумму чисел от 1 до n"
решение: "подсчитать сумму чисел от 1 до n-1 по этому алгоритму и прибавить n"
задача:" каждое последующее число Фибонначи равно сумме двух предыдущих чисел. найти n-е число"
решение: "подсчитать n-1 е и n-2 е числа по этому алгоритму и сложить"

+конечно должен быть выход из рекурсии
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
20.01.2013, 22:34     рекурсия #5
Цитата Сообщение от Alika07 Посмотреть сообщение
программа запускается, но результат не выводит(
еще бы она вывела
она зациклилась
что хотел сделать то?
prZzZ
Программист
 Аватар для prZzZ
108 / 88 / 5
Регистрация: 22.03.2011
Сообщений: 232
20.01.2013, 22:34     рекурсия #6
Alika07, добрый вечер...
Что-то не совсем понятно: зачем для решения этой задачи (вычисления стоимости) рекурсия?
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
20.01.2013, 22:37  [ТС]     рекурсия #7
например, если мне нужно вывести цену от 100 гр. до 1 кг
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
20.01.2013, 22:41     рекурсия #8
Цитата Сообщение от Alika07 Посмотреть сообщение
например, если мне нужно вывести цену от 100 гр. до 1 кг
цена от веса не зависит зависит стоимость
обыкновенный цикл
C++
1
2
for (double i=0.1;i<=1.0;i+=0.1)
   stoimost_producta (cena,i);
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
20.01.2013, 22:54  [ТС]     рекурсия #9
спасибо
prZzZ
Программист
 Аватар для prZzZ
108 / 88 / 5
Регистрация: 22.03.2011
Сообщений: 232
20.01.2013, 23:02     рекурсия #10
Как вариант извращения:
C++
1
2
3
4
5
6
7
8
9
int i = 1, cena = 10;
 
void st(double cena, int i)
{
    std::cout << cena * i << std::endl;
    if(i == 10)
        return;
    st(cena, i += 1);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2013, 23:04     рекурсия
Еще ссылки по теме:

Рекурсия C++
Рекурсия C++
C++ Рекурсия

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

Или воспользуйтесь поиском по форуму:
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
20.01.2013, 23:04  [ТС]     рекурсия #11
спасибо
Yandex
Объявления
20.01.2013, 23:04     рекурсия
Ответ Создать тему
Опции темы

Текущее время: 10:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru