Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
planemar1
#1

Вычисление конечного произведения - C++

13.12.2012, 14:59. Просмотров 812. Ответов 1
Метки нет (Все метки)

Всем Доброго времени суток! Имеется задача: Вычислить произведение http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{n=1}^{k} (1+\frac{x^n}{2n!})
Я сделал данную программу, заведя отдельную функцию для n! и потом в main просто в цикле посчитал произведение, возводя x в степень с помощью pow. Так вот, препод сказал, что это не рационально, и нужно факториал и степень считать с помощью рекуррентного соотношения. Это получается нужно факториал, степень, да еще и сам подсчет произведения залепить в 1 цикл? Или я чего не понимаю. Накидал бредовый код, он не работает, естесственно. Помогите пожалуйста! Без использования pow.
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
#include <iostream>
using namespace std;
 
int main ()
{
    int k; double x, p=1, fact=1, b1, b2, b;
    cout <<"k = "; cin >>k;
    cout <<"x = "; cin >>x;
    b1=x; b2=x;
    if (k==0); // Рассматривание случаев <3 для вычисления степени
     if (k==1) b=x; // с помощью рекуррентного соотношения
      if (k==2) b=x*x;
    for (int i=1; i<=k; i++)
     { 
       fact*=i; // Подсчет факториала
       fact=fact*2; // Умножение полученного числа на 2
       i+=2; // Увеличение i до 3х на первом шаге цикла, для вычисления
       if (i<=k+1) // степени, с помощью рекуррентного соотношения
        {
          b=b1*b2;
          b2=b;
        } // Подсчет x^n
       i-=2; // Возвращение счетчику предыдущего значения
       p*=b/fact+1; // Подсчет
       cout <<b/fact+1; // произведения
       if (i<k) cout <<" * "; // Красявости, в виде знаков умножения между членами произведения
     } 
    cout <<" = " <<p;
    system ("pause");
   return 0;
}
Добавлено через 18 часов 9 минут
упс, накосячил в условии: там знак произведения, а не суммы) http://www.cyberforum.ru/cgi-bin/latex.cgi?\prod_{n=1}^{k}(1+\frac{x^n}{2n!})

Добавлено через 1 минуту
Сам допер) кому интересно
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
#include <iostream>
using namespace std;
 
int main ()
{
    int k; double x, p=1, fact=1, b1, b;
    cout <<"k = "; cin >>k;
    cout <<"x = "; cin >>x;
    b1=x;
    for (int i=1; i<=k; i++)
     {
       fact*=i;
       fact=fact*2;
       for (int n=i+2; n<=k+i; n++)
          {
            b=b1;
            b1=b*x;
            break;
          }
        p*=b/fact+1;
        cout <<b/fact+1;
        if (i<k) cout <<" * ";
        fact=fact/2;
      } 
    cout <<" = " <<p;
    system ("pause");
   return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 14:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление конечного произведения (C++):

Вычисление конечного произведения - C++
Для заданного натурального k и действительного x подсчитать следующее выражение: P=\prod_{n=2}^{k}\left( 1+\frac{(-1)^n...

Перевести с Pascal на C++. Вычисление суммы (произведения) конечного ряда. - C++
Программа вычисления суммы (произведения) конечного ряда. При разработке программы предусмотреть пропуск слагаемых (множителей), равных...

Вычисление суммы (произведения) конечного ряда + блок-схема - C++
Составить схему алгоритма и написать программу вычисления суммы (произведения) конечного ряда. При разработке программы предусмот- реть...

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

Составить схему алгоритма и написать программу вычисления суммы (произведения) конечного ряда - C++
Задание : составить схему алгоритма и написать программу вычисления суммы (произведения) конечного ряда. При разработке программы...

Вычисление конечного значения - C++
Здравствуйте. Прошу у вас помощи с программой: // 515.cpp: определяет точку входа для консольного приложения. // #include...

1
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.12.2012, 15:09 #2
вот это:
Цитата Сообщение от planemar1 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for (int n=i+2; n<=k+i; n++)
 {
 b=b1;
 b1=b*x;
 break;
 }
 p*=b/fact+1;
 cout <<b/fact+1;
можно заменить на:
C++
1
2
3
p*=b/fact+1;
cout <<b/fact+1;
b*=x;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2012, 15:09
Привет! Вот еще темы с ответами:

Вычисление суммы конечного ряда - C++
1) Задача: Вычислить сумму конечного ряда сумма:k от 1 до 10 функция (-1)^k / k! 2) Дана последовательность чисел аi (i=1, 2, …,...

Вычисление конечного значения с определённой точностью - C++
Добрый вечер, уважаемые программисты. Хочу попросить у вас помощи с программой. Не могу понять, куда привязать точность. Спасибо!

Вычисление произведения - C++
Доброго время суток. Написать программу вычисления произведения: \prod_{1}^{\propto}\cos(\frac{\pi }{{2}^{(n+1)}}) = \frac{2}{\pi } ...

Вычисление произведения - C++
Здравствуйте. Мне проблема в том, что я не знаю как написать код по данным примерам. Не могли бы вы помочь, и скинуть литературу. ...


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

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

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