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

Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция) - C++

Восстановить пароль Регистрация
 
ruskape
0 / 0 / 0
Регистрация: 30.09.2016
Сообщений: 4
21.10.2016, 14:47     Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция) #1
не получается разобраться с алгоритмом
Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2016, 14:47     Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция)
Посмотрите здесь:

Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
C++ Вычислить выражение по заданной формуле
Рекурсивная функция: вычислить среднее арефметическое элементов одномерного массива C++
C++ Рекурсивная функция (вычислить сумму)
Вычислить произведение по формуле C++
C++ Вычислить произведение по формуле
Рекурсивная функция для вычисления по заданной формуле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
21.10.2016, 14:53     Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция) #2
Терпеть ненавижу рекурсивные функции, а рекуррентно получается так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double P()
{
    double w1=0.3,w2=0.5;
    double p=1.0;
    for(int i=1;i<=50;i++)
    {
           double w3=i+sin(w1)-cos(w2);
           p*=w3;
           w1=w2;
           w2=w3;
    }
    return p;
}
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
21.10.2016, 15:02     Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция) #3
C++
1
2
3
4
5
6
7
double W(int i)
{
    if(i<1) return 0;
    if(i==1) return 0.3;
    if(i==2) return 0.5;
    return i+sin(W(i-1))-cos(W(i-2));
}
Добавлено через 6 минут
Процесс очень медленный, рекурсия и правда тут все портит.
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
 
using namespace std;
 
double W(int i)
{
    if(i<1) return 0;
    if(i==1) return 0.3;
    if(i==2) return 0.5;
    return i+sin(W(i-1))-cos(W(i-2));
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    double p=1;
    for(int i=1;i<=50;i++){
        double w=W(i);
        p*=w;
        cout<<"W("<<i<<") = "<<w<<endl;
    }
    cout<<"P = "<<p<<endl;
    system("pause");
    return 0;
}
Yandex
Объявления
21.10.2016, 15:02     Вычислить произведение по заданной формуле, не используя массивы (рекурсивная функция)
Ответ Создать тему
Опции темы

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