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

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

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

C++ Для заданного натурального числа N вычислить и вывести на экран
Для заданного натурального n и действительного х подсчитать сумму C++
C++ Для заданного натурального k и действительного х подсчитать сумму
Для заданного натурального числа n и действительных чисел x0 и A вычислить Xn, по итерационной формуле: C++
C++ Для заданного натурального n вычислить 1 +3+5 +7 +…+2n-1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:37     Для заданного натурального n вычислить n!! #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);
}
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.01.2014, 18:41     Для заданного натурального n вычислить n!! #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);
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.01.2014, 18:44     Для заданного натурального n вычислить n!! #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;
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:44     Для заданного натурального n вычислить n!! #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);
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.01.2014, 18:46     Для заданного натурального n вычислить n!! #6
Цитата Сообщение от cooller_94 Посмотреть сообщение
int factorial(int n)
{
* * * * if(n>2)
* * * * * * return n*factorial(n-2);
}
а если меньше двух ? что возвращать будем?
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:51     Для заданного натурального n вычислить n!! #7
Цитата Сообщение от ValeryS Посмотреть сообщение
а если меньше двух ? что возвращать будем?
да уж, чет туплю сегодня(
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.01.2014, 18:54     Для заданного натурального n вычислить n!! #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);
}
Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 18:59  [ТС]     Для заданного натурального n вычислить n!! #9
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.01.2014, 19:00     Для заданного натурального n вычислить n!! #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Fanat35 Посмотреть сообщение
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
Мой работает вроде.) Проверила на разных числах. Пробуйте.
Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 19:06  [ТС]     Для заданного натурального n вычислить n!! #11
Цитата Сообщение от Тамика Посмотреть сообщение
Мой работает точно. Проверила на разных числах. Пробуйте.
Хорошо! Спасибо! Премного благодарен!!

Добавлено через 2 минуты
Хорошо! Спасибо! Премного благодарен!
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.01.2014, 19:07     Для заданного натурального n вычислить n!! #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
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.01.2014, 19:10     Для заданного натурального n вычислить n!! #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 минуты
Хорошо! Спасибо! Премного благодарен!
Обождите. Там бага.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.01.2014, 19:11     Для заданного натурального n вычислить n!! #14
Тамика,
посмотри на мои " клише" там два варианта умножения от максимума к минимуму и наоборот
может пригодится
если непонятно спрашивай
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.01.2014, 19:15     Для заданного натурального n вычислить n!! #15
Блин.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2014, 11:53     Для заданного натурального n вычислить n!!
Еще ссылки по теме:

Для заданного натурального n и действительного х подсчитать суммы C++
Для заданного натурального n вычислить C++
C++ Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n

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

Или воспользуйтесь поиском по форуму:
frax007
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 13
15.03.2014, 11:53     Для заданного натурального n вычислить n!! #16
так и не доделали программу?
Yandex
Объявления
15.03.2014, 11:53     Для заданного натурального n вычислить n!!
Ответ Создать тему
Опции темы

Текущее время: 07:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru