Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
DmitryM5
Love~
106 / 86 / 44
Регистрация: 27.08.2013
Сообщений: 1,155
Записей в блоге: 1
1

Числа Каталана,можно ли проще?

13.09.2013, 19:52. Просмотров 958. Ответов 2
Метки нет (Все метки)

Задание :Числа Каталана Cn, которые играют большую роль в комбинаторике (например, Cn равно числу полных бинарных деревьев с n+1 листьями), могут быть вычислены по формуле:
Cn = (2n)! / ((n+1)! n!)
Создайте функцию, реализующую соответствующее вычисление.
Указание: использовать рекурсию запрещено.

Так как я только неделю в C++,но все же мне кажется 3 цикла for полный бред,просьба упростить алгоритм если можно...

Мой код:
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
#include <iostream>
#include <locale>
 
using namespace std;
 
 
double katalan(int N) {
    double V=1,N1=1,N2=1;
    for (int i=1;i<=2*N;i++) 
        V*=i;
    for (int i=1;i<=N+1;i++) 
        N1*=i;
    for (int i=1;i<=N;i++) 
        N2*=i;
 
    return V/(N1*N2) ;
}
 
int main() {
    std::locale::global(std::locale(""));
    int N;
    cout<<"Введите целое N "<<endl;
    cin>>N;
    cout<<"Число Каталана под номером N  = "<<katalan(N)<<endl;
    system("pause");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 19:52
Ответы с готовыми решениями:

Для заданного числа n составить последовательность Каталана
Для заданного числа n составить последовательность Каталана, каждое число...

можно написать ее как то проще ?
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;conio.h&gt;...

нужно решить как можно проще
в текстовом файле подсчитать количество строк, которые начинаются и...

Можно ли это написать как то проще
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt;...

Сочините пример как можно проще на сдвиг
Сочините пример как можно проще на сдвиг. Сам пользоваться умею, не могу только...

2
Cynacyn
33 / 33 / 7
Регистрация: 02.05.2013
Сообщений: 109
13.09.2013, 20:00 2
Напишите функцию итеративно вычисляющую факториал.
C++
1
2
3
double katalan(int N) {
return fact(2*n)/(fact(n+1)*fact(n));
};
1
salam
176 / 157 / 29
Регистрация: 10.07.2012
Сообщений: 769
13.09.2013, 20:52 3
где-то слышал, что можно пользоваться математикой, чтобы упрощать вычисления...

Добавлено через 3 минуты
вам достаточно посчитать только факториал 2п, сохранив в массив. Можно без массива. Два числа только пригодятся.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 20:52

Оператор switch, можно ли сделать код проще?
Дана задача посчитать гласные в тексте введенном с клавиатуры, вопрос ниже... ...

Обработка параметров командной строки. Можно ли ещё проще?
Всем доброго дня) Экспериментировал с параметрами командной строки, хочу...

Поиск количества слов строке(как можно проще)
Здравствуйте.Я недавно начал изучать с++ и столкнулся с проблемой. Нужно...


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

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

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