Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
#1

Программа для вычисления количества гостей и мест к ним

14.03.2009, 12:58. Просмотров 1769. Ответов 20
Метки нет (Все метки)

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
//программа для вычисления количества гостей и мест к ним
#include <iostream>
using namespace std;
int main()
{
    int x,y,z,n;
    x=z;
    cout<<"Vvedite kol Gostel=";
    cin>>y;
    cout<<"Vvedite kol-vo mest=";
    cin>>x;
    getchar();
    for(x=1;x<z;x++)
    x++;
    n=y*(y-x);
    cout<<"Koli4estvo="<<n<<endl;
    getchar();
    return 0;
}
//гости y,количество мест x
//количество итераций=x,уменьшая на y-1,до такой степени скоко x;
//гостей например 5 мест 4, 5*4*3*2=120,
//y*(y-1)*(y-2)*(y-3)=n,n- количество рассадок
//x=как тут представить х даже не представляю
Подскажите как решить задачку пришли например 6 гостей мест 4,значит рассадить их можно 6*5*4*3=360 раз,сделать программу которая бы считала,сколько раз можно рассадить любое введенное пользователем количества гостей и мест,но чтобы гостей было всегда больше чем мест,не меньше.Сделать это нада с помощью цикла for и подскажите где еще можно прочитать про циклы С++ подробно я их не пойму,у меня с ними проблемы или опишите тут все про циклы С++,ну не могу и все их понять,и задачку помогите решить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2009, 12:58
Ответы с готовыми решениями:

Программа для вычисления количества дней между двумя датами
Добрый день!Ни как не получаеться написать в си программу, которая будет уметь...

Cоздать класс для вычисления количества выстрелов до первого попадания
Написать программу для решения статистическими методами следующей задачи.Из...

Рекурсивная функция для вычисления количества цифр натурального числа
Нужно написать рекурсивную функцию для вычисления количества цифр натурального...

Функции вычисления количества дней заданного месяца и количества месяцев между двумя датами
Область first - положительное целое число , год; second - положительное целое...

Метод (для структуры) вычисления количества секунд, прошедших с начала суток
Доброй ночи. Будьте добры, помогите разобраться в таком вопросе: У меня...

20
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:07 #2
Харви дейтел, пол дейтел "Как программировать на с++" там все понятно описано, ты быстро разберешься
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:13  [ТС] #3
Цитата Сообщение от Бартимеус Посмотреть сообщение
Харви дейтел, пол дейтел "Как программировать на с++" там все понятно описано, ты быстро разберешься
Подскажи еще как решить пожалуйста у меня в голове не укладывается
Получается так каждый человек сидит на 4 стульях 60 раз,на каждом стуле по 15 раз,если все сложить будет 360 раз все люди посидят на каждом стулеДальше у меня мозг отказывает логику понимать,лучше решение
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:19 #4
C++
1
for(x; x>y-1; x--)
цикл для этой формулы
Цитата Сообщение от Tiami Посмотреть сообщение
,значит рассадить их можно 6*5*4*3
Добавлено через 2 минуты 27 секунд
в цикле сделай что-то типа такого "otvet*=x"
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:21  [ТС] #5
Цитата Сообщение от Бартимеус Посмотреть сообщение
#

for(x; x>y-1; x--)
Да и если можно пожалуйста еще формулу,а то мой мозг взрывается
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:25 #6
ты ж сам ее дал
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:26  [ТС] #7
Цитата Сообщение от Tiami Посмотреть сообщение
n=y*(y-x);
Цитата Сообщение от Tiami Посмотреть сообщение
#

for(x; x>y-1; x--)
ну если и цикл был для той формулы,то в ответе 0 получается а не 360
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:26 #8
формулу всмысле
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:27  [ТС] #9
Цитата Сообщение от Бартимеус Посмотреть сообщение
ты ж сам ее дал
Да там формулу еще придумать надаЯ ее не знаю,вот и придумал,лучше напиши свою с пояснениями,а то жестко что то мне

Добавлено через 33 секунды
Цитата Сообщение от Бартимеус Посмотреть сообщение
формулу всмысле
внизу просто мои выводы в головене обращай внимание
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:32 #10
0? ты, я надеюся "otvet"у первоначальное значение не 0 присвоил

Добавлено через 4 минуты 56 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
  int x,y,otvet=1;  
  cout<<"Vvedite znachenia: ";
  cin>>x>>y;
  if(x<y)
  {cout<<"Neverny vvod"<<endl; return 0;}
  for(x; x>y-1; x--)
  {otvet*=x;}
   cout<<x<<endl;
   return 0;
}
вот тебе код, будут ошибки говори-писал без компилера
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:35  [ТС] #11
Цитата Сообщение от Бартимеус Посмотреть сообщение
0? ты, я надеюся "otvet"у первоначальное значение не 0 присвоил
У меня ща крыша поедетЛучше приведи пожалуйста готовый листинг с пояснениями щас напишу задачу:Представьте,что вы собираетесь пригласить к себе 6 гостей,но за вашим столом смогут разместится лишь 4 человека.Сколькими способами можно разместить 4 человек из 6 за обеденным столом?Каждый из 6 гостей может разместиться на 1 стуле.Каждый из оставшихся 5 гостей может занять 5 стул.На третьем стуле может разместиться один из 4 гостей,и на четвертом один из 3 оставшихся гостей.Двоим из гостей не останется ни одного места.Таким образом число рассадка гостей равно 6*5*4*3=360.Напишите программу которая будет производить аналогичные вычисления для любого числа гостей и мест за столом(при этом предполагается, что число гостей не меньше числа мест).Программа не должна быть сложной,и вычисление можно организовать с помощью простого цикла for
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:38 #12
я ваще после пробного еге, блин формула вроде правильная, листинг я привел, что еще требуется?
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:46  [ТС] #13
Цитата Сообщение от Бартимеус Посмотреть сообщение
я ваще после пробного еге, блин формула вроде правильная, листинг я привел, что еще требуется?
ввожу 6 и 4 жму Enter получается 3 а не 360 как в программе

Добавлено через 3 минуты 58 секунд
Цитата Сообщение от Бартимеус Посмотреть сообщение
я ваще после пробного еге, блин формула вроде правильная, листинг я привел, что еще требуется?
У тебя в формуле получается x--,уменьшается х,допустим =4 то в формуле будет ответ=1*(4-1);то есть 3 формула не правильная
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 13:50 #14
замени for(x; x>y-1; x--) на for(x+=1; x>y-1; x--)

Добавлено через 1 минуту 34 секунды
Цитата Сообщение от Tiami Посмотреть сообщение
ввожу 6 и 4 жму Enter получается 3 а не 360 как в программе
вот тока 3 все равно не должно получаться, щас компилер скачаю посмотрю
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 13:53  [ТС] #15
Цитата Сообщение от Бартимеус Посмотреть сообщение
замени for(x; x>y-1; x--) на for(x+=1; x>y-1; x--)
Даже если и заменю,где формулу нормальную то откопать

Добавлено через 1 минуту 8 секунд
Да и вроде смысл в том что к x+1 не будет,чет ваще такая задача
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 14:14 #16
нашел я там свои ощибки, башка не варит уже(((
держи рабочий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{  
    int x, y;
    int otvet=1;
    cout<<"Vvedite znachenia: "; 
    cin>>x>>y;  
    if(x<y)
    {
      cout<<"Neverny vvod"<<endl;
      return 0;
    }
    for(x; x>=y-1; x--)
    {
     otvet*=x;
     }   
    cout<<otvet<<endl;  
    getch();
    return 0;
}
1
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 14:18  [ТС] #17
Просто есть два вариант представить x= число мест как число итераций,например 20 мест значит 20 итераций провести нада.Допустим идти в обратном порядке:
n=(y-20)*(y-19)*(y-18)...итд.Итак пока не дойдет до 1 то есть числа гостей y в конце будет код:n=......(y-2)*y,получается как бы код верный,а вот описать такой код проблема. то есть два варианта x-- и x++ либо уменьшать в выражениях x либо прибавлять.можно описать и так m=(y-x),при х=1,то код будет n=(y*m)*(m-1)*(m-2)...итд много варинтов но как описать фиг знает их
0
Бартимеус
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
14.03.2009, 14:23 #18
все че я понял это то что надо описать такой код: n=(y-20)*(y-19)*(y-18)
C++
1
2
3
4
5
6
7
int x,y,n=1;
x=20;
y=//какоето значение
for(x; x>=1; x--)
{
n*=(y-x);
}
0
Tiami
Яростный кот
43 / 1 / 0
Регистрация: 10.03.2009
Сообщений: 220
14.03.2009, 14:45  [ТС] #19
Цитата Сообщение от Бартимеус Посмотреть сообщение
нашел я там свои ощибки, башка не варит уже(((
держи рабочий код:
Thank you

Добавлено через 10 минут 30 секунд
Цитата Сообщение от Tiami Посмотреть сообщение
описать и так m=(y-x),при х=1,то код будет n=(y*m)*(m+1)*(m+2)...
ну а тут смысл такой:например гости y места х=1,дальше идет m=(y-x),то есть m=(y-1);
идем дальше n=y*(y-1),то есть n=(y*m)*(y-2);то есть y-1=m+1,то есть 1 переносим в другую часть будет y-2.Тупо алгебраИ так до такой степени до нужного количества местаТак сложнеено все равно способ

Добавлено через 43 секунды
Цитата Сообщение от Tiami Посмотреть сообщение
m=(y-x),при х=1,то код будет n=(y*m)*(m-1)*(m-2)...итд много варинтов но как описать фиг знает их
Ну а тут ошибочка вышла сорри

Добавлено через 9 минут 56 секунд
C++
1
2
3
{
           otvet*=x;
           }
Что не понимаю я так это эту строку
0
ISergey
Maniac
Эксперт С++
1408 / 919 / 148
Регистрация: 02.01.2009
Сообщений: 2,749
Записей в блоге: 1
14.03.2009, 15:00 #20
otvet*=x; это равносильно этому -> otvet = otvet * x;
0
14.03.2009, 15:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2009, 15:00

Составить программу для вычисления количества цифр среди элементов списка.
Тема: Динамические структуры данных. Линейные списки. Дан список А, состоящий...

Составить программу для вычисления количества арабских цифр в введенном с клавиатуры строке символов
Привет всем )) Нужна помощь Задача (язык С + +). Составить программу для...

Написать программу для вычисления количества элементов массива, дробная часть которых меньше 0,1
Дан массив размером 4x4 с элементами вещественного типа. Написать программу для...


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

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

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