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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
Руслан555
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 79
#1

Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; - C++

25.09.2013, 09:44. Просмотров 2715. Ответов 16
Метки нет (Все метки)

Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6...; Помогите пожалуйста!!! Срочно нужен код программы)) Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 09:44     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.;
Посмотрите здесь:
Дано натуральное число n.Вычислить произведение первых n сомножителей C++
C++ Дано натуральное число n. Вычислить произведение первых n сомножителей
C++ Дано натуральное число N. Вычислить произведение первых N сомножителей
Дано натуральное число n. Вычислить произведение первых n сомножителей 1/2 * 3/4 * 5/6 * ... C++
Дано натуральное n. Вычислить n сомножителей произведения 2/1*2/3*4/3*4/5*6/5*6/7 C++
C++ Вычислить произведение первых сомножителей
C++ Вычислить произведение первых n сомножителей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
25.09.2013, 09:46     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #2

Не по теме:

Срочно его напишите и срочно его получите.



А что у Вас не получилось ?? Лень приключилась ?
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
25.09.2013, 11:41     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #3
Цитата Сообщение от Руслан555 Посмотреть сообщение
Дано натуральное число n. Вычислить произведение первых n сомножителей
А если оно нечетное?
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
25.09.2013, 11:51     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #4
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А если оно нечетное?
и что?
1/2*3/4*5/6
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
25.09.2013, 11:56     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #5
Цитата Сообщение от Croessmah Посмотреть сообщение
и что?
1/2*3/4*5/6
n == 6
Четное.
А при n == 7 что будет?
1/2*3/4*5/6*7/хз
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
25.09.2013, 11:58     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #6
C++
1
2
double M=1;
for(int i=1;i<=n;i++) M*=(2*i-1)/(2*i);
Добавлено через 1 минуту
для случая "1/2*3/4*5/6" n вообще-то равно 3. У кого-то сложности с пониманием задачи
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
25.09.2013, 12:10     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #7
Цитата Сообщение от SatanaXIII Посмотреть сообщение
n == 6
Четное.
А при n == 7 что будет?
Добавлю:
Здесь есть вырожденный случай - если n == 1. Что в этом случае делать, в задании не сказано....
А для n >= 2 функцию можно сильно упростить, и даже цикл тут не нужен :-)
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
25.09.2013, 12:12     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #8
Цитата Сообщение от Algoritmer Посмотреть сообщение
У кого-то сложности с пониманием задачи
Это я.

Не по теме:

CheshireCat,

Croessmah
25.09.2013, 12:15
  #9

Не по теме:

Цитата Сообщение от CheshireCat Посмотреть сообщение
Здесь есть вырожденный случай - если n == 1
1/2

CheshireCat
25.09.2013, 12:21
  #10

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


1/2

Ага, вот этот факт позволяет резко упростить функцию, начиная с n == 2 :-))

Croessmah
25.09.2013, 12:25
  #11

Не по теме:

Цитата Сообщение от CheshireCat Посмотреть сообщение
Ага, вот этот факт позволяет резко упростить функцию, начиная с n == 2 :-))
C++
1
2
if ( n == 1 )
   return 1.0/2.0 ;
не особо то и сложно

эхххх.... прогрессия )))

Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
25.09.2013, 12:31     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #12
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Это я.

Не по теме:

CheshireCat,

В задании сказано "первых n сомножителей", т.е. будет (n-1) знаков "*". Каждая дробь - это сомножитель. Числитель и знаменатель по отдельности сомножителями не являются.
При n=1: 1/2
При n=2: 1/2*3/4
При n=3: 1/2*3/4*5/6
В общем случае: 1/2*3/4*5/6*...*(2n-1)/2n

Добавлено через 3 минуты
Цитата Сообщение от CheshireCat Посмотреть сообщение
Добавлю:
Здесь есть вырожденный случай - если n == 1. Что в этом случае делать, в задании не сказано....
А для n >= 2 функцию можно сильно упростить, и даже цикл тут не нужен :-)
Очень интересно посмотреть, как это можно решить без цикла!!!
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
25.09.2013, 12:32     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #13
Цитата Сообщение от Algoritmer Посмотреть сообщение
Очень интересно посмотреть, как это можно решить без цикла!!!
математика же
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
25.09.2013, 12:36     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #14
Цитата Сообщение от Croessmah Посмотреть сообщение
математика же
Ну так покажи решение. Я понимаю, что числитель и знаменатель по отдельности представляют арифметические прогрессии. Но что-то формулу для произведения n-членов арифметич прогрессии я не встречал.
Сам подумай: Произв=а*(а+d)*(a+2d)...(a+(n-1)d)
При раскрытии скобок ничего хорошего не получается.
Байт
Эксперт C
15657 / 9984 / 1499
Регистрация: 24.12.2010
Сообщений: 18,758
25.09.2013, 14:11     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #15
Вообще-то это (2n-1)!! / (2n)!!
C++
1
2
double p; int i;
for(i=1, p=1; i<=n; i++) p *=(double)(2*i -1)/(2*i);
Добавлено через 2 минуты
При n=0 тоже считается правильно (произведение нуля сомножителей равно 1, как сумма нуля слагаемых равна 0)

Не по теме:

Странно, что такая простенькая задачка вызвала столь бурную дискуссию

Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
25.09.2013, 14:19     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #16
Цитата Сообщение от Байт Посмотреть сообщение
Вообще-то это (2n-1)!! / (2n)!!
C++
1
2
double p; int i;
for(i=1, p=1; i<=n; i++) p *=(double)(2*i -1)/(2*i);
Добавлено через 2 минуты
При n=0 тоже считается правильно (произведение нуля сомножителей равно 1, как сумма нуля слагаемых равна 0)

Не по теме:

Странно, что такая простенькая задачка вызвала столь бурную дискуссию

Забыл про это: (2*i -1)/(2*i) = 0 и приведение его к (double) уже ничего не даст.
нужно так: (2*i -1)*1.0/(2*i)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 16:16     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.;
Еще ссылки по теме:
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр? C++
Дано натуральное число найти произведение нечетных цифр числа C++
Дано трехзначное натуральное число. Найти произведение его цифр C++
C++ Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
C++ Дано натуральное число N. Вычислить

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

Или воспользуйтесь поиском по форуму:
Байт
Эксперт C
15657 / 9984 / 1499
Регистрация: 24.12.2010
Сообщений: 18,758
25.09.2013, 16:16     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.; #17
Цитата Сообщение от Algoritmer Посмотреть сообщение
Забыл про это: (2*i -1)/(2*i) = 0 и приведение его к (double) уже ничего не даст.
нужно так: (2*i -1)*1.0/(2*i)
К double приводится (2*i-1). То, что вы имели в виду, записывается иначе
C++
1
(double)((2*i-1)/(2*i))
и безусловно, является ошибкой.
Цитата Сообщение от Algoritmer Посмотреть сообщение
нужно так: (2*i -1)*1.0/(2*i)
совершенно эквивалентно моему предложению. И даже на 2 символа короче

Добавлено через 14 минут

Не по теме:

Любопытно другое. Чему равен предел при n->бесконечности? Чую, что где-то около нуля.
Дошел только до (2n-1)!! / 2nn!
Ясно, что предел есть (монотонно убывает, ограничена снизу)
А вот как этот предел найти...

Yandex
Объявления
25.09.2013, 16:16     Дано натуральное число n. Вычислить произведение первых n сомножителей: 1/2*3/4*5/6.;
Ответ Создать тему
Опции темы

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