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

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

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

Для заданного натурального n вычислить n!! - C++

27.01.2014, 18:25. Просмотров 829. Ответов 15
Метки нет (Все метки)

Пусть n натуральное число и пусть n !! означает 1*3*5*7*.....*n для нечетного n и 2*4*6*8*.....*n для четного n. Для заданного натурального n вычислить n!!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 18:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для заданного натурального n вычислить n!! (C++):

Для заданного натурального n вычислить 1 +3+5 +7 +…+2n-1 - C++
Для заданного натурального n вычислить 1 +3+5 +7 +…+2n-1

Для заданного натурального n вычислить - C++
Для заданого натурального n обчислити S = 1 + 1*2 + 1*2*3 + … + 1*2* …*n . нужно написать программу в С++

Для заданного натурального числа N вычислить и вывести на экран - C++
Подскажи как решать это задание пожалуйста. ил ихотябы объясните что означают большие символы)) Для заданного натурального числа N...

Для заданного натурального к и действительного х вычислить сумму ряда - C++
Помогите пожалуйста. Для заданного натурального к и действительного х подсчитать следующие выражения:

Для заданного натурального числа n и действительных чисел x0 и A вычислить Xn, по итерационной формуле: - C++
xi+1=xi+1/3((A/xi^2)-xi)

Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n - C++
Помогите с этой задачой: Подпрограммы Составить функцию для нахождения наименьшего нечетного натурального делителя k (k≠1) любого...

15
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:37 #2
Fanat35, Если я правильно понял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int factorial(int n)
{
    if(n>2)
        return n>2?1:n*factorial(n-2);
}
int main()
{
    int number;
    std::cin>>number;
    std::cout<<factorial(number);
}
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,194
Записей в блоге: 27
27.01.2014, 18:41 #3
Цитата Сообщение от cooller_94 Посмотреть сообщение
if(n>2)
* * * * return n>2?1:n*factorial(n-2);
не совсем понятно - а зачем Вы два раза условие проверяете? if будет работать, если условие n>2 правда. Потом Вы снова тернарным оператором проверяете - если n>2,то делаем то, если нет - то другое. Это странно, так как если бы n>2 было false, то оно попросту не вошло бы в иф. Думаю эта строка не имеет смысл. Ее можно упростить просто оставив n*factorial(n-2);
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,205
27.01.2014, 18:44 #4
Цитата Сообщение от cooller_94 Посмотреть сообщение
if(n>2)
* * * * return n>2?1:n*factorial(n-2);
переведи
C++
1
2
3
int fct=1;
for(int i=n;i>0;i-=2);
     fct*=i;
C++
1
2
3
int fct=1;
for(int i=n%2+2;i<=n;i+=2)
       fct*=i;
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:44 #5
Тамика, тупанул. Сделал двумя версиями, но забыл удалить лишнее(
Вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int factorial(int n)
{
        if(n>2)
            return n*factorial(n-2);
 
}
int main()
{
    int number;
    std::cin>>number;
    std::cout<<factorial(number);
}
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,205
27.01.2014, 18:46 #6
Цитата Сообщение от cooller_94 Посмотреть сообщение
int factorial(int n)
{
* * * * if(n>2)
* * * * * * return n*factorial(n-2);
}
а если меньше двух ? что возвращать будем?
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:51 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
а если меньше двух ? что возвращать будем?
да уж, чет туплю сегодня(
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,194
Записей в блоге: 27
27.01.2014, 18:54 #8
А такое?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int factorial(int n)
{
 
    for (int i = n - 2; i > 1; --i)
 
        n *= i;
 
    return (n == 0) ? 1 : n;
}
 
int main()
{
    int number;
    std::cin>>number;
    std::cout<<factorial(number);
}
0
Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 18:59  [ТС] #9
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,194
Записей в блоге: 27
27.01.2014, 19:00 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Fanat35 Посмотреть сообщение
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
Мой работает вроде.) Проверила на разных числах. Пробуйте.
1
Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 19:06  [ТС] #11
Цитата Сообщение от Тамика Посмотреть сообщение
Мой работает точно. Проверила на разных числах. Пробуйте.
Хорошо! Спасибо! Премного благодарен!!

Добавлено через 2 минуты
Хорошо! Спасибо! Премного благодарен!
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,205
27.01.2014, 19:07 #12
Цитата Сообщение от Тамика Посмотреть сообщение
Мой работает точно.
давай проверим n=6
for (int i = n - 2; i > 1; --i)
i=4
n *= i;
6*4=24
for (int i = n - 2; i > 1; --i)
i=3!!!!
24*3!!!=72
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,194
Записей в блоге: 27
27.01.2014, 19:10 #13
Цитата Сообщение от ValeryS Посмотреть сообщение
давай проверим n=6
for (int i = n - 2; i > 1; --i)
i=4
n *= i;
6*4=24
for (int i = n - 2; i > 1; --i)
i=3!!!!
24*3!!!=72
Да-да, я тут маленько поменяла и получилась лажа.

Добавлено через 2 минуты
Цитата Сообщение от Fanat35 Посмотреть сообщение
Хорошо! Спасибо! Премного благодарен!!

Добавлено через 2 минуты
Хорошо! Спасибо! Премного благодарен!
Обождите. Там бага.
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,205
27.01.2014, 19:11 #14
Тамика,
посмотри на мои " клише" там два варианта умножения от максимума к минимуму и наоборот
может пригодится
если непонятно спрашивай
1
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,194
Записей в блоге: 27
27.01.2014, 19:15 #15
Блин.
0
27.01.2014, 19:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2014, 19:15
Привет! Вот еще темы с ответами:

Для заданного четного числа вычислить сумму, для нечетного произведение чисел от 1 до заданного - C++
c++ дано число вводится с клавиатуры, если оно четное, то ввести сумму с 1 до n. Если нечетное — произведение от 1 до n. вывести на экран

Для заданного натурального n и действительного х подсчитать сумму - C++
Помогите пожалуйста составить пограмму!!![/B Для заданного натурального n и действительного х подсчитать сумму: ...

для заданного натурального n и действительного x подсчитать сумму - C++
S=1+2+2^2+2^3+...+2^n Написала программу, но выдаётся ошибка. помогите разобраться, в чём проблема

Для заданного натурального n и действительного x подсчитать суммы - C++
13. S=1+1\2!+1\3!+...+1\n!; Помогите пожалуйста с решением. В долгу не останусь любой коммерческий вопрос не проблема😊😉


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

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

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