| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Вычисление ряда |
| Автор: Tiglon 6.2.2012, 23:12 | ||
| Всем дорого время суток. Си++ начал изучать относительно недавно. Вот нужна помощь разбирающихся людей. Есть задание "найти суму 9 членов ряда в котором a(n)=a!/(2n)!" вот пока написал вычисление факториала
Я так понимаю что тут надо все написать в одном цикле а не в разных ? И проблема моя в том что я не понимаю как это сделать . Помогите пожалуйста. |
| Автор: ambler 7.2.2012, 00:13 | ||
А условие точно такое? a! ? |
| Автор: feodorv 7.2.2012, 00:30 | ||||
Наверное, все же, a**n. В принципе, не нужно каждый шаг вычислять a**n и (2n)!, когда известен предыдущий член ряда:
Вот так в цикле и вычислять:
Это если считать от n=0 до n=8 (9 членов ряда); |
| Автор: Tiglon 7.2.2012, 10:33 |
да. все правильно. вот условие. ![]() |
| Автор: ambler 7.2.2012, 12:29 | ||||
все же n! при n = 1 ... 9 получаем
|
| Автор: feodorv 7.2.2012, 12:38 | ||||
Гм. a! и n! всё же немного отличаются))) Ну тогда:
В итоге:
|
| Автор: Tiglon 7.2.2012, 16:27 |
Ой извиняюсь. Даже не заметил |
| Автор: feodorv 7.2.2012, 18:03 | ||
Теоретически, компилятор понимает, что в начале выражения стоит elem с типом double, поэтому он будет приводить к double остальные члены выражения. Однако, кто знает, может потом захочется модифицировать программу. Например:
Забыв о приведении типов, Вы получите неверный результат. Кроме того, для малых значений n значение выражения (2*n+1) * (2*n+2) не превысит INT_MAX, но в другом месте гарантировать этого никто не сможет, поэтому лучше типы привести, чем не привести, кмк... |
| Автор: Tiglon 7.2.2012, 18:29 |
| Ясно. Еще раз спасибо. И я вот еще думаю что переманенная sum должна равняться 0. |