Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
1

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

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

Author24 — интернет-сервис помощи студентам
Пусть n натуральное число и пусть n !! означает 1*3*5*7*.....*n для нечетного n и 2*4*6*8*.....*n для четного n. Для заданного натурального n вычислить n!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2014, 18:25
Ответы с готовыми решениями:

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

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

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

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

15
571 / 539 / 280
Регистрация: 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
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
571 / 539 / 280
Регистрация: 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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
27.01.2014, 18:46 6
Цитата Сообщение от cooller_94 Посмотреть сообщение
int factorial(int n)
{
* * * * if(n>2)
* * * * * * return n*factorial(n-2);
}
а если меньше двух ? что возвращать будем?
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
27.01.2014, 18:51 7
Цитата Сообщение от ValeryS Посмотреть сообщение
а если меньше двух ? что возвращать будем?
да уж, чет туплю сегодня(
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
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
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 18:59  [ТС] 9
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
27.01.2014, 19:00 10
Лучший ответ Сообщение было отмечено Fanat35 как решение

Решение

Цитата Сообщение от Fanat35 Посмотреть сообщение
Ребят. Я не знаю, каким должен быть код! Вы уж подскажите наиболее правильный!!
Мой работает вроде.) Проверила на разных числах. Пробуйте.
1
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
27.01.2014, 19:06  [ТС] 11
Цитата Сообщение от Тамика Посмотреть сообщение
Мой работает точно. Проверила на разных числах. Пробуйте.
Хорошо! Спасибо! Премного благодарен!!

Добавлено через 2 минуты
Хорошо! Спасибо! Премного благодарен!
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
27.01.2014, 19:11 14
Тамика,
посмотри на мои " клише" там два варианта умножения от максимума к минимуму и наоборот
может пригодится
если непонятно спрашивай
1
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
27.01.2014, 19:15 15
Блин.
0
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 13
15.03.2014, 11:53 16
так и не доделали программу?
0
15.03.2014, 11:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2014, 11:53
Помогаю со студенческими работами здесь

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

Вычислить значение натурального числа заданного строкой символов в указанной системе счисления
Скласти підпрограму для обчислення значення натурального числаза заданим рядком символів,...

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

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

Для заданного натурального k и действительного х подсчитать сумму
\sum_{n-1}^{k}\frac{{(-1)}^{n}{x}^{n}}{{2}^{n}7n}

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru