Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 28.07.2019
Сообщений: 23
1

Можно ли так делать ?

10.08.2019, 02:19. Показов 1427. Ответов 4

Я пока что начинающий, поэтому хочу спросить, можно ли так делать ?

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
39
40
41
42
43
44
45
#include<iostream>
#include<cstdlib>
 
using namespace std;
 
int Factorial(int k)
{
    if(k==1)
    {
        return 1;
    }
    else
        {
            return k*Factorial(k-1);
        }
}
 
double Binom(int k,int n)
{
    if(n==0)
    {
        return 0;
    }
    if(n<k)
    {
        cout<<"Warrning"<<endl;
    }
    else
    {
    return (n/(n-k))*Binom(k,n-1);
    }
}
 
int main()
{
    setlocale(LC_ALL,"Rus");
    int number;
    cout<<"Число снизу: ";
    cin>>number;
    int koef;
    cout<<"Число сверху: ";
    cin>>koef;
    cout<<"Биноминальный коэффициент: "<<Binom(Factorial(koef),number)<<endl;
    return 0;
}
Вопрос именно про эту строчку: "cout<<"Биноминальный коэффициент: "<<Binom(Factorial(koef),number)<<endl;"
В независимости от ответа на вопрос сверху подскажите, как написать программу для вычисления биномиальных коэффициентов.
Спасибо
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2019, 02:19
Ответы с готовыми решениями:

указатель на void в иерархии классов. можно ли так делать?
здравствуйте! Такое дело: мне нужно написать иерархию классов для работы с таблицей. базовый...

Хочу передать в функцию несколько разнотипных массивов. Можно так делать?
Хочу передать в функцию несколько разнотипных массивов. Можно так делать? Надо в функцию чар....

Thread: можно ли делать так, как в заданном коде и если нет, то почему?
Всем привет. можно ли так делать? Если нет то почему. Спасибо. #include &lt;iostream&gt; #include...

Можно ли так делать?
Народ можно ли совмещать id и class в одном теге как тут &lt;audio id=&quot;au&quot; class=&quot;music&quot;...

4
2723 / 1887 / 559
Регистрация: 05.06.2014
Сообщений: 5,499
10.08.2019, 05:03 2
Ну да, результат одной функции, можно использовать как аргумент другой.
Единственное но - у вас сейчас факториал грохнется, если в него ноль вбить.
0
3348 / 1926 / 368
Регистрация: 09.09.2017
Сообщений: 7,799
10.08.2019, 08:47 3
Цитата Сообщение от D303 Посмотреть сообщение
Я пока что начинающий, поэтому хочу спросить, можно ли так делать ?
Нет. Потому что вопросы на форум задаются иначе:
Описываете что хотите получить. Текстом, развернуто. Именно конечную цель, а не ваше представление о пути решения.
Описываете что делали для решения. Причем исходный код оформляется по-человечески, то есть с отступами, комментариями и тегами кода (это уже специфично для форума).
Описываете что как именно оно не работает и на каких тестах. Возможно, крашится. Возможно, ответ не соответствует ожидаемому (надо привести входные данные, ожидаемый ответ и реальный ответ). Возможно, просто хотите код-ревью.
Цитата Сообщение от D303 Посмотреть сообщение
int Factorial(int k)
Точно ли нужно вычислять факториал через рекурсию? Потому что через цикл оно проще, надежнее и быстрее.
Цитата Сообщение от D303 Посмотреть сообщение
double Binom(int k,int n)
Википедия говорит, что для биномиальных коэффициентов есть формула https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{n!}{k!(n-k)!}
А функция вычисления факториала у вас уже есть.

Не по теме:

Да, "выливаем воду из чайника, гасим огонь, после чего задача сводится к предыдущей"

1
Байт
10.08.2019, 09:49
  #4

Не по теме:

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А функция вычисления факториала у вас уже есть.
что имеет смысл тоько как иллюстрация метода
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
выливаем воду из чайника, гасим огонь, после чего задача сводится к предыдущей"
:)

0
6545 / 4450 / 2549
Регистрация: 18.12.2017
Сообщений: 13,890
10.08.2019, 13:38 5
Лучший ответ Сообщение было отмечено D303 как решение

Решение

Цитата Сообщение от D303 Посмотреть сообщение
можно ли так делать ?
Цитата Сообщение от D303 Посмотреть сообщение
n/(n-k)
так делать не нужно из-за целочисленного деления.
Цитата Сообщение от D303 Посмотреть сообщение
как написать программу для вычисления биномиальных коэффициентов
если Вы хотите расчёт оформить в виде рекурсивной функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
 
long long C(int n, int k)
{    
    if (k==0 || k==n) return 1;    
    return n*C(n-1,k)/(n-k); // или return C(n-1,k-1)+C(n-1,k);    
}
 
int main()
{
    int n, k;
    cout << "n="; cin >> n;
    cout << "k="; cin >> k;
   
    cout << "binomial coefficient = " << C(n,k) << "\n";
    
system("pause");
return 0;
}
некорректные значения ввода не обрабатывал, такие значения можно отсечь на этапе ввода или добавить в функцию строку if (n<=0 || k<0 || k>n) return 0;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2019, 13:38

Можно так делать?
Кто знает кто нет, я только начал изучать ООП. Так вот... index.php: include(&quot;class.php&quot;); $db...

Можно ли так делать
Можно ли так делать, карманов нет под ссд

Можно ли делать так...
Здравствуйте друзья. Использую СУБД Access. Есть таблица ip_address там хранятся ip адреса...

Можно ли делать так if (i++ < 100) {;} ?
Это счётчик тиков в обработчике прерывания по переполнению аппаратного счётчика. Красиво, кратко,...

Можно ли делать так сайты?
http://users9.jabry.com/onegaonline

Можно ли так делать (два сервера)?
При нажатии на одну кнопку хочу запустить два сервера. Можно ли так делать? server = new...


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

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

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