Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/47: Рейтинг темы: голосов - 47, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 21

Найти количество способов выбрать трех животных для международной выставки

30.03.2015, 18:48. Показов 9232. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В городском зоопарке содержатся животные n разных видов. Для участия в международной выставке «Три твари» зоопарк должен представить трех животных различных видов.

Требуется написать программу, которая вычислит число способов выбрать трех животных для участия в выставке.

Например, если в зоопарке два медведя, тигр, лев и пингвин, то есть семь способов выбрать трех животных:
1. первый медведь, тигр и лев;
2. первый медведь, тигр и пингвин;
3. первый медведь, лев и пингвин;
4. второй медведь, тигр и лев;
5. второй медведь, тигр и пингвин;
6. второй медведь, лев и пингвин;
7. тигр, лев и пингвин.

Технические требования:
Ограничение по времени тестирования: по 1 секунде на один тест.
Формат входных данных:
Входной текстовый файл содержит в первой строке натуральное число n – количество видов животных в городском зоопарке (1 £ n £ 1000). Во второй строке через пробел записаны n чисел – количество животных соответствующего вида. Общее число животных в зоопарке не превышает 1000.
Формат выходных данных:
Выходной текстовый файл должен содержать одно число – количество способов выбрать трех животных для международной выставки.
Пример файлов входных и выходных данных:
INPUT 1
4
2 1 1 1

OUTPUT 1
7

INPUT 2
3
100 100 100

OUTPUT 2
1000000
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2015, 18:48
Ответы с готовыми решениями:

Найти количество способов выбрать подарки
Имеется 5 видов подарков в количествах 25 разных подарков каждого типа. 2 человека выбирают подарки, так, что первый берет от 16 до 18...

Комбинаторика: найти количество способов выбрать подарки.
Помогите, пожалуйста 1. Имеется 5 видов подарков в количествах 25 разных подарков каждого типа. 2 человека выбирают подарки, так, что...

Комбинаторика. Количество способов выбрать m из n.
Сколькими способами из n человек можно выбрать комиссию, состоящую из m человек (n>m)? Задача с поключение файла

4
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 8
30.03.2015, 23:35
и на эту задачу хотелось бы получить ответ
0
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 21
01.04.2015, 22:19  [ТС]
На паскале написал, помогите на С++ перевести.
Pascal
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
var a: array[1..1000, 0..1000] of integer;
  b: array[1..100] of integer; 
  n, m, z, x, y: integer;
 
procedure c(x: integer); 
var i: integer;
begin
  if b[x] = 0 then inc(z); 
  b[x] := 1; 
  for i := 1 to a[x, 0] do if b[a[x, i]] = 0 then c(a[x, i]); 
end;
begin
  readln(n, m);
  while not eof(input) do
  begin
    read(z);
    if z = 0 then break; 
    read(y);
    if y = m then begin write('No'); exit; end; 
    x := z;
    inc(a[x, 0]); 
    a[x, a[x, 0]] := y;
  end;
  z := 0;
  c(m);
  if z = n then write('Yes') else write('No'); 
end.
0
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 1
24.09.2018, 22:32
Java
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
46
47
48
49
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
 
public class Zoo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int [] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        if (n == 3){
            System.out.println(new BigInteger(String.valueOf(a[0]))
                    .multiply(new BigInteger(String.valueOf(a[1]))
                            .multiply(new BigInteger(String.valueOf(a[2])))));
            return;
        }
        BigInteger [][] c = new BigInteger[n + 1][4];
        for (int i = 0; i < n+1; i++) {
            for (int j = 0; j < 4; j++) {
                c[i][j] = new BigInteger("0");
            }
        }
 
        for (int i = 0; i <= n; i++) {
            c[i][0] = BigInteger.ONE;
            //System.out.print(c[i][0] + " ");
            for (int j = 1; j < i  && j < 4; j++) {
                c[i][j] = c[i-1][j-1].add(c[i-1][j]);
                //System.out.print(c[i][j] + " ");
            }
            //System.out.println();
        }
        for (int i = 1; i <= n; i++) {
            c[i][0] = BigInteger.ONE;
            //System.out.print(c[i][0] + " ");
            for (int j = 1; j < n && j < 4; j++) {
                c[i][j] = c[i-1][j-1]
                        .multiply(new BigInteger(String.valueOf(a[i-1])))
                        .add(c[i-1][j]);
                //System.out.print(c[i][j] + " ");
            }
            //System.out.println();
        }
        System.out.println(c[n][3]);
 
    }
}
0
30 / 21 / 8
Регистрация: 23.09.2018
Сообщений: 186
24.09.2018, 23:15
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
#include <vector>
#include <iostream>
 
using namespace std;
 
unsigned cnk(unsigned n, unsigned k) {
    if (k > n) {
        return 0;
    }
    if (n == k) {
        return 1;
    }
    if (k == 1) {
        return n;
    }
    return cnk(n - 1, k - 1) + cnk(n - 1, k);
}
 
int main() {
    unsigned m, k;
    cout << "число видов? ";
    cin >> m;
    std::vector<unsigned> n(m);
    cout << "сколько требуется выбрать животных? ";
    cin >> k;
    for (int i = 1; i <= m; i++) {
        cout << "число животных вида " << i << "? ";
        cin >> n[i - 1];
    }
    
    unsigned total = 0;
    for (int i = 0; i < n.size(); i++) {
        total += cnk(m - 1 - i, k - 1) * n[i];
    }
    
    cout << "число способов: " << total << endl;
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2018, 23:15
Помогаю со студенческими работами здесь

Сколько же всего существует способов выбрать нужное количество шпаргалок?
Сколько? Собираясь как-то на экзамен, Петя разложил перед собой n разных шпаргалок со своего &quot;любимого&quot; предмета...

Найти количество способов рассадки человек за столом и количество комбинаций из монет различного достоинства
1. Сколькими способами можно посадить рядом 3 англичан, 3 французов и 3 немцев так, чтобы никакие три соотечественника не сидели 2....

Сколько существует способов рассадки трех взрослых и шести детей для катания на карусели
Здравствуйте. Мне досталась такая задачка: На карусели девять одинаковых мест для пассажиров. Сколько существует способов рассадки трех...

Найти количество способов
Есть две задачи: Буду рад решению хотя бы одной!:) Так как я НЕ программист:-|, хотелось бы услышать подробное объяснение...

Найти количество способов расставить книги
Помогите пожалуйста решить задачу: В начале учебного года в одном Великом Университете библиотека выдавала книги своим студентам,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru