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

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

Войти
Регистрация
Восстановить пароль
 
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
#1

Вычислить выражение (простейший цикл) - C++

05.10.2013, 22:38. Просмотров 319. Ответов 8
Метки нет (Все метки)

Добрый день, помогите разобраться в задаче!
Условие:
Даны целые n, k (http://www.cyberforum.ru/cgi-bin/latex.cgi?n\geq k\geq 0). Вычислить http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{n(n-1)...(n-k+1)}{k!}.

У меня получилось так, но
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
 
int main() {
int f,i,t,n,k;
float res; 
cout<<"k>=0 k=";
cin>>k;
while (k<0) { cout<<"k>=0 k="; cin>>k; } 
cout<<"n>=k n=";
cin>>n;
while (n<k) { cout<<"n>=k n="; cin>>n; }
f=1; i=1;
while (i<=k) { f*=i; i++; }
t=n-k+1;
res=t/f;
cout<<res<<endl; 
system("PAUSE");
return 0;
}
не очень понятно, что значит http://www.cyberforum.ru/cgi-bin/latex.cgi?n(n-1)...(n-k+1) в числителе дроби
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 22:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить выражение (простейший цикл) (C++):

Цикл: Вычислить значение выражение - C++
y=45x/(5!-44x/(4!-43/(3!-42x/(2!-4x/(1-x))))) С решением и цикл с предусловием плз

Цикл: Вычислить выражение по заданной формуле - C++
Алгоритм решения каждой задачи реализовать всеми типами циклических операторов (если это возможно): do, for, while) БЕЗ ИСПОЛЬЗОВАНИЯ...

Вычислить выражение - C++
X-ввести

вычислить выражение - C++
Привет помогите решить в С++ дано:1*2+2*3*4+3*4*5*6+n*(n+1)*(n+2)*...*2n;

Вычислить выражение - C++
Составить программу вычисления выражения в правой части. Все значения для вычисления ввести с клавиатуры. Все значения для вычисления...

Вычислить выражение - C++
Используя оператор if,вычислить заданное выражение для данных типа integer: f(x)=\begin{cases} 3\left|x \right| &amp; \text{ , } x \lt...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
05.10.2013, 22:45 #2
C++
1
2
3
4
int chislo=1;
for (int i = n; n>=n-k+1; i--){
chislo*=i;
}
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
05.10.2013, 23:32  [ТС] #3
scenotaph, возможно я не понял, но у меня не работает :с

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
 
int main() {
int f,i,t,n,k;
float res; 
cout<<"k>=0 k=";
cin>>k;
while (k<0) { cout<<"k>=0 k="; cin>>k; } 
cout<<"n>=k n=";
cin>>n;
while (n<k) { cout<<"n>=k n="; cin>>n; }
f=1; i=1;
while (i<=k) { f*=i; i++; }
 
t=1;
for (int i=n; n>=n-k+1; i--) { t*=i; }
 
res=t/f;
cout<<res<<endl; 
system("PAUSE");
return 0;
}
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
05.10.2013, 23:54 #4
Цитата Сообщение от Slowpok Посмотреть сообщение
scenotaph, возможно я не понял, но у меня не работает :с

C++
1
for (int i=n; n>=n-k+1; i--) { t*=i; }
конечно не работает-вот у вас бесконечный цикл, я чуток изменил как я это вижу...работает
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
#include <iostream>
using namespace std;
 
int main() {
    int i,n,k;
    float res,f,t; 
    cout<<"k>=0 k=";
    cin>>k;
    while (k<0) { cout<<"k>=0 k="; cin>>k; } 
    cout<<"n>=k n=";    
    cin>>n;
    while (n<k) { cout<<"n>=k n="; cin>>n; }
    f=1; i=1;
    while (i<=k) { 
        f*=i; i++; 
    }
    t=1;
    for (int i=(n-k+1); n>=i; i++) { 
        t*=i; 
    }
    res=t/f;
    cout<<res<<endl; 
    system("PAUSE");
    return 0;
}
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
06.10.2013, 00:26  [ТС] #5
вопросы:

1. почему f и t должны быть вещественного типа, если в ходе работы никогда не получат значение, отличное от целого? если это из-за строки:
C++
1
res=t/f;
, то почему не можем указать на тип:
C++
1
res(float)=t/f;
2. объясните пожалуйста, что в числителе условия записано?
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
06.10.2013, 00:34 #6
1. да это именно из-за той строки указывание не сработает, вы разделите инт на инт-получите целое число и потом переведете его в тоже число только с ".0"
можно вот так сделать:
C++
1
cout<<float(t)/f<<endl;
2-не понял к чему вопрос? к вашей формуле в задании или вопрос к коду?)
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
06.10.2013, 02:19  [ТС] #7
newb_programmer, в задании указаны некие "...", я так понимаю это какая-то числовая последовательность, где первый член это n(n-1), а последующие изменяются по некому правилу, возможно указанному во второй скобке... к коду у меня вопросов нет, но если вам не трудно, объясните пожалуйста, чего от меня хотят в условии.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
06.10.2013, 10:38 #8
Slowpok,
Я опечатался, конечно
C++
1
2
3
4
int chislo=1;
for (int i = n; i>=n-k+1; i--){
chislo*=i;
}
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
06.10.2013, 11:25 #9
Цитата Сообщение от Slowpok Посмотреть сообщение
newb_programmer, в задании указаны некие "...", я так понимаю это какая-то числовая последовательность, где первый член это n(n-1), а последующие изменяются по некому правилу, возможно указанному во второй скобке... к коду у меня вопросов нет, но если вам не трудно, объясните пожалуйста, чего от меня хотят в условии.
ну смотрите n(n-1)...(n-k+1). вы умножаете n на n-1 пока не дойдете до n-k+1. к примеру вы вводите n=10 и k=5 тогда в числителе будет: 10*9*8*7*6, последнее число 6, т.к. n-k+1=10-5+1=6
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2013, 11:25
Привет! Вот еще темы с ответами:

Вычислить выражение n++*m - C++
Есть математическое действие: n++*m Человек вводить значение n и m, а программа выполняет n++*m и выводит результат на экран. Напишите...

Вычислить выражение - C++
Задачу надо переписывать. Редактор формул внизу страницы Реализация программы на С++ для h=...

Вычислить выражение - C++
Вычислить выражение при помощи 3-х видов циклов (for , while , do while ) и выбор (по какому нужно считать ) при помощи switch ...

вычислить выражение - C++
Создать алгоритм программы для вычисления выражения. При этом найти вычисления, который целесообразно оформить в виде нестандартных функций...


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

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

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