Форум программистов, компьютерный форум 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. Просмотров 2770. Ответов 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.; (C++):

Дано натуральное число n. Вычислить произведение первых n сомножителей - C++
Дано натуральное число N. Вычислить произведение первых N сомножителей 1/1*8/ 9*15/17 * 22/ 25...

Дано натуральное число N. Вычислить произведение первых N сомножителей - C++
Здраввствуйте. Помоги решить мне эту задачу. НА ЯЗЫКЕ СИ... 1 Дано натуральное число N. Вычислить произведение первых N...

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

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

Дано натуральное n. Вычислить n сомножителей произведения 2/1*2/3*4/3*4/5*6/5*6/7 - C++
Дано натуральное n. Вычислить n сомножителей произведения 2/1*2/3*4/3*4/5*6/5*6/7... Помогите пожалуйста!!! Срочно нужен код программы))...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
25.09.2013, 09:46 #2

Не по теме:

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



А что у Вас не получилось ?? Лень приключилась ?
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
25.09.2013, 11:41 #3
Цитата Сообщение от Руслан555 Посмотреть сообщение
Дано натуральное число n. Вычислить произведение первых n сомножителей
А если оно нечетное?
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
25.09.2013, 11:51 #4
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А если оно нечетное?
и что?
1/2*3/4*5/6
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
25.09.2013, 11:56 #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
Сообщений: 480
Записей в блоге: 1
25.09.2013, 11:58 #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,368
25.09.2013, 12:10 #7
Цитата Сообщение от SatanaXIII Посмотреть сообщение
n == 6
Четное.
А при n == 7 что будет?
Добавлю:
Здесь есть вырожденный случай - если n == 1. Что в этом случае делать, в задании не сказано....
А для n >= 2 функцию можно сильно упростить, и даже цикл тут не нужен :-)
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
25.09.2013, 12:12 #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
Сообщений: 480
Записей в блоге: 1
25.09.2013, 12:31 #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Эксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
25.09.2013, 12:32 #13
Цитата Сообщение от Algoritmer Посмотреть сообщение
Очень интересно посмотреть, как это можно решить без цикла!!!
математика же
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
25.09.2013, 12:36 #14
Цитата Сообщение от Croessmah Посмотреть сообщение
математика же
Ну так покажи решение. Я понимаю, что числитель и знаменатель по отдельности представляют арифметические прогрессии. Но что-то формулу для произведения n-членов арифметич прогрессии я не встречал.
Сам подумай: Произв=а*(а+d)*(a+2d)...(a+(n-1)d)
При раскрытии скобок ничего хорошего не получается.
Байт
Эксперт C
15977 / 10245 / 1535
Регистрация: 24.12.2010
Сообщений: 19,327
25.09.2013, 14:11 #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)

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 14:11
Привет! Вот еще темы с ответами:

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

Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр? - C++
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр?

Дано трехзначное натуральное число. Найти произведение его цифр - C++
3. Дано трехзначное натуральное число. Найти произведение его цифр. Я девушка, и, честно говоря, не понимаю, зачем нас заставляют это...

Дано натуральное число найти произведение нечетных цифр числа - C++
Дано натуральное число (более четырех знаков): – найти произведение нечетных цифр числа; – верно ли, что в числе нет цифр, кратных 3?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.09.2013, 14:11
Ответ Создать тему
Опции темы

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