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

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

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

Вычислить произведение ряда - C++

17.01.2010, 17:19. Просмотров 522. Ответов 9
Метки нет (Все метки)

Дано натуральное число n. Вычислить
(1+1/1^2)*(1+1/2^2)…(1+1/n^2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   int i;
   double n,s,d;
   cout<<"vvedite n=";
   cin>>n;
   for (i=1;i<=n;i++)
   {
      s=(1+1/(i*i));
     d=s*s;
      
      
   }
   cout<<d<<endl;
   system("PAUSE");
   return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2010, 17:19     Вычислить произведение ряда
Посмотрите здесь:

Вычислить произведение ряда - C++
1*3*5*....*101

Вычислить произведение ряда - C++
Дано натуральне число n. Обчислити P=(1+1/1)(1+1/2)^2 ...(1+1/n)^n , не використовуючи бібліотечних функцій. Дано натуральное число n....

Вычислить произведение ряда - C++
Вычислить сумму S = R+R+...+R . R=1.01; R=o.75; R=0.25i + 2sinR - 0.35cosR . i=3,...,100. Массивом не пользоваться.

Вычислить произведение ряда - C++
Вычислить произведение ряда \prod_{i=1}^{infinity} (x-2*i), где x - некоторое заданное вещественное число больше нуля. Вычисления закончить...

Вычислить произведение ряда - C++
х ввести с клавиатуры,k определить из условия ak=b, где a и b относится к целым четным числам (a&lt;b) и вводится с...

Вычислить произведение ряда - C++
#include&lt;iostream.h&gt; int main() { int n, i; float z,p; cout&lt;&lt;&quot;vvedite n&quot;; cin&gt;&gt;n; for(i=2; i&gt;n;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
17.01.2010, 17:30     Вычислить произведение ряда #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
    double n,s,d=1;
    cout<<"vvedite n=";
    cin>>n;
    for (double i=1;i<=n;i++)
    {
        s=(double)(1+1/(i*i));
        d*=s*s;
    }
    cout<<d<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
ответ проверь
Павел апостол
0 / 0 / 0
Регистрация: 27.12.2009
Сообщений: 12
17.01.2010, 17:33  [ТС]     Вычислить произведение ряда #3
Всё равно чё то не то
Shymep
13 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 34
17.01.2010, 17:41     Вычислить произведение ряда #4
А зачем умножать на s^2?
C++
1
d*=s*s;
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
17.01.2010, 18:00     Вычислить произведение ряда #5
Лучше будет так
Код
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int i;
double n,s,d;
cout<<"vvedite n=";
cin>>n;
d = 1;
for (i=1;i<=n;i++)
{
s=(1+1.0/(i*i));  // Именно так  1.0 !!!
d *= s;
}
cout<<d<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
17.01.2010, 18:22     Вычислить произведение ряда #6
Day, И зачем 1.0 ?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
17.01.2010, 18:42     Вычислить произведение ряда #7
Цитата Сообщение от Darky Посмотреть сообщение
Day, И зачем 1.0 ?
явное указание что тип double, однако, имхо i надо сразу double делать, всё равно потом преобразуется
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
17.01.2010, 19:08     Вычислить произведение ряда #8
Это, безусловно, дело вкуса.
Но мне кажется, что приведение типа надо делать той точке, где это актуально.
А то кто-то всколзь глянет - "чего этот придурок переменную цикла в double обрядил..."
И потом - не верю я в арифметику действительных чисел на компе
Конструкция if (i = n) при double i, int n - ох какая скользкая!
Shymep
13 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 34
17.01.2010, 19:21     Вычислить произведение ряда #9
Day, при разработках в современных IDE, с учетом оптимизаторов кода, это уже не проблема. Понятно, что есть классы задач, на которых можно использовать свою многобайтовую. Но реальный эксперимент, проводимый еще лет 6 назад для задачи, которая действительно требовала точности знака до 7-8, показал, что Borland CBuilder6, MatLab и собственный класс выдал одинаковый ответ до 13 знака.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2010, 20:09     Вычислить произведение ряда
Еще ссылки по теме:

Вычислить произведение ряда - C++
вычислить и вывести на экран, x и k ввести с клавиатуры p=\prod_{i=1}^{k}\frac{sin(ix)}{2i-1}

Вычислить произведение ряда - C++
Господа,нужна помощь. Кому не лень,не трудно,помогите чем могите. Собственно вот: Блок А 1. В области 12 районов. Известны количество...

Вычислить произведение ряда - C++
Квадратики это умножение (*) Пользуйтесь редактором формул внизу страницы P=\prod_{k=1}^{K}\frac{{(-1)}^{k}({k}^{2}+k+1)}{k!}

Вычислить произведение ряда - C++
Вычислить произведение ряда P=(1+3)*(5+7)*...*((2n-1)+(2n+1)) для введенного с клавиатуры n помогите, я в c++ новичок


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

Или воспользуйтесь поиском по форуму:
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
17.01.2010, 20:09     Вычислить произведение ряда #10
Ты совершенно прав!
Просто у меня идиосинкразия на тип float, double и прочее
Столько пришлось помучиться, чтоб совпадали суммы вычисленные по горизонтали
и вертикали!
Правдо было это в незапямятные времена языка PL/1.
Это мы сейчас думаем - ну и монстр!
А тогда это был весма прогрессивный язычище!

А целое - оно и в Африке целое (пока не пробьет разрядную сетку (MAX_INT))
Yandex
Объявления
17.01.2010, 20:09     Вычислить произведение ряда
Ответ Создать тему
Опции темы

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