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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
#1

Вычислить n! и n!! - C++

07.11.2010, 14:10. Просмотров 1452. Ответов 12
Метки нет (Все метки)

Всем доброго время суток, помогите пожалуйста задали написать программы:
1) n! = 1 * 2 * 3 * ... * n
2) n!! = n * (n - 2) * (n - 4) * ...

Вообще не знаю как делать
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 14:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить n! и n!! (C++):

Вычислить в одномерном массиве вычислить сумму элементов массива... - C++
В одномерном массиве, состоящем из 10 целых элементов, вычислить сумму элементов массива, расположенных между первым и последними...

Вычислить в одномерном массиве вычислить номер максимального элемента - C++
Здравствуйте, меня зовут Вика, я не сильна в программирование (ну тоесть вообще) прошу вас (умные и добрые люди) помочь мне решить задание....

Вычислить по формуле. ВЫчислить с заданной точностью - C++
http://i22.***********/big/2011/0607/04/8a2c677b4bf24ec8e8fb7be0ee571804.jpg задание 6-7

Задан массив А размером п. Вычислить среднее арифметическое положительных элементом. Вычислить a1 • a2 + a2 • a3 + + an -1 • an - Turbo Pascal
помогите решить, пожалуйста! Задан массив А размером n. Вычислить среднее арифметическое положительных элементом. Вычислить a1 * a2 + a2...

Вычислить элемент матрицы А и вычислить суммы элементов каждой строки - QBasic
Напечатать матрицу А и вычислить суммы элементов каждой строки матрицы А

Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). Вычислить MIN(X,Y,Z X-Y) - Free Pascal
1. Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). 2. Даны целые числа X,Y,Z. Вычислить MIN(X,Y,Z X-Y).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
07.11.2010, 14:14 #2
1)
C++
1
2
3
4
5
6
7
8
9
10
int Factorial(int n)
{
        if((n==0)||(n==1))
        return 1;
 
        int f=1;
        for(int i=1;i<=n;i++)
        f=f*i;
        return f;
}
2) Подумай сам..
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
07.11.2010, 14:17 #3
isaak, вы уже в который раз создаете темы про ряды, где только формула меняется ? может самому уже понять, что вам пишут в десятый раз.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:18 #4
а чему равно 1!! ?

вроде n!! = (n!)! - следовательно 1!! равно одному, так как (1!)! равно (1)! равно 1

а там по формуле получается 1!! = 1 * (1 - 2) * (1 - 4) ... то есть -1 * -3 ...
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
07.11.2010, 14:19 #5
accept, n!!=1 скорее всего.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:38 #6
у него там формула какая-то, что 1!! получается не 1, а либо отрицательное число, либо больше еденицы
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
07.11.2010, 14:40 #7
n!! = n * (n - 2) * (n - 4) * ... 1 или 2, ну она какая то такая по идее должна быть
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:51 #8
допустим 3!! = (3!)! = (6)! = 720
а по его формуле 3!! = 3 * (3 - 2) * (3 - 4) ... и докуда ?
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.11.2010, 15:00 #9
Двойной факториал n - это произведение всех чисел от 1 до n той же чётности, что и n. Т.е. для чётного n это произведение всех чётных чисел от 1 до n (2 * 4 * ... * n), а для нечётного - соответственно нечётных (1 * 3 * ... * n). Таким образом 1!! = 1

Добавлено через 2 минуты
Ну а 3!! = 1 * 3 = 3.
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 15:01 #10
wiki. факториал
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.11.2010, 15:13 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
int factorial(int n)
{
    for (int i = n - 1; i >= 2; i--)
        n *= i;
 
    return n == 0 ? 1 : n;
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1 + n % 2; i -= 2)
        n *= i;
 
    return n == 0 ? 1 : n; 
}
 
int main()
{
    std::cout << factorial(0) << std::endl
              << factorial(1) << std::endl
              << factorial(2) << std::endl
              << factorial(3) << std::endl
              << factorial(4) << std::endl
              << factorial(5) << std::endl
              << std::endl;
 
    std::cout << factorial2(0) << std::endl
              << factorial2(1) << std::endl
              << factorial2(2) << std::endl
              << factorial2(3) << std::endl
              << factorial2(4) << std::endl
              << factorial2(5) << std::endl;
 
    std::cin.get();
    return 0;
}
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 15:21 #12
C++
1
int f = 1;
это что-то лишнее ?
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.11.2010, 15:24 #13
Да его уже и нет))) Забыл убрать.

Добавлено через 1 минуту
Можно ещё функции вот так переписать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int factorial(int n)
{
    for (int i = n - 1; i >= 2; n *= i--);
 
    return n == 0 ? 1 : n;
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1; n *= i, i -= 2);
 
    return n == 0 ? 1 : n; 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2010, 15:24
Привет! Вот еще темы с ответами:

Вычислить среднее арифметическое отрицательных чисел. Вычислить сумму элементов каждой строки - C#
Помогите с реализацией задачи: Задать целочисленный двумерный массив NxM (значения N, M вводятся с клавиатуры, N&lt;10, M&lt;10). Программа...

Вычислить сумму чисел:в указанном пределе, с неопределенным пределом. Вычислить значение выражения - Delphi
s=\sum_{n=1}^{15}*{(-1)}^{n+1}*\frac{2*sin(n*x)}{n},y=x Помогите найти ошибку. unit Unit1; interface uses Windows,...

Вычислить объемы шаров . Вычисление радиусов вычислить в подпрограмме. - Pascal
точки А(5.I,2.9,-3.7),В(0.8,-1.5,3.9),С(2.2,0.8,5.4) и D(-3.3,2.5,0.7) принадлежат поверхностям шаров с центром в точке О(0.3,7.8,2.9)....

Как вычислить дифференциал длины дуги кривой. Как вычислить производную через предел - Математический анализ
Как вычислить дифференциал длины дуги кривой? Как вычислить производную через предел?


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

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

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