Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MariaFitzgerald
0 / 0 / 11
Регистрация: 06.03.2017
Сообщений: 106
Завершенные тесты: 1
#1

Задача принцесса калечит драконов - C++

10.05.2017, 17:51. Просмотров 317. Ответов 7
Метки нет (Все метки)

«Раз дракон. Два дракон. Три дракон», — считала принцесса. У нее была бессонница, а считать барашков ей надоело еще в девять лет.

Впрочем, считать драконов просто так тоже было скучно, поэтому она развлекалась как могла. Этой ночью она представляла, что все посчитанные драконы явились сюда, чтобы ее украсть, а она отбивается от них, как может. Каждого k-ого дракона она била сковородкой по морде. Каждому l-ому — прищемляла хвост балконной дверью. Каждому m-ому — наступала на лапу острым каблучком. Наконец, каждому n-ому она грозила позвать мамочку, и он в ужасе ретировался.

Скольким воображаемым драконам успела нанести моральный или физический ущерб принцесса, если всего она насчитала d драконов?

Входные данные:
Входные данные содержат целые числа k, l, m, n и d, каждое число в отдельной строке (1 ≤ k, l, m, n ≤ 10, 1 ≤ d ≤ 10^5).
Выведите количество пострадавших драконов.
Пример входного файла (input.txt):
1
2
3
4
12

Пример выходного файла (output.txt):
12
http://www.cyberforum.ru/cpp-beginners/thread1862004.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2017, 17:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задача принцесса калечит драконов (C++):

Задача про драконов
Условие: У каждой S-ножки 1 голова. Найти количество ног N у K-главого...

Задача - принцесса или тигр
Господа помогите решить следующую задачу: В некотором царстве правил...

Дискретная математика.Задача на логику:Принцесса или Тигр?
В некотором царстве правил король. Однажды он решил провести эксперимент над...

Принцесса и тигры
Король посадил за три двери два тигра и принцессу. На каждой двери по табличке....

Принцесса хочет замуж
Вот такую задачку сегодня навеяло. Она довольно древняя, но любопытная....

7
Aymurat
111 / 105 / 62
Регистрация: 07.11.2014
Сообщений: 734
Завершенные тесты: 6
10.05.2017, 18:11 #2
Совсем не на логику...
Задача решается одним циклом
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
10.05.2017, 18:12 #3
Лучший ответ Сообщение было отмечено MariaFitzgerald как решение

Решение

Ну и принцесса...
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    int k, l, m, n, d;
    std::cin >> k >> l >> m >> n >> d;
    int counter = d;
    for (int i = 1; i <= d; i++)
        if (i % k && i % l && i % m && i % n)
            counter--;
    std::cout << counter;
}
2
MariaFitzgerald
0 / 0 / 11
Регистрация: 06.03.2017
Сообщений: 106
Завершенные тесты: 1
10.05.2017, 18:22  [ТС] #4
MrGluck, компилятор почему то решение не понимает

Добавлено через 1 минуту
Цитата Сообщение от MrGluck Посмотреть сообщение
i % k
там не должно быть ==0 ?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
10.05.2017, 18:26 #5
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
там не должно быть ==0 ?
(i % k) равносильно (i % k != 0)
Обратите внимание, что counter изначально равен d. То есть мы отбрасываем количество "счастливых непокалеченных" драконов, а не считаем количество калечей.
1
GoldenId
131 / 130 / 64
Регистрация: 11.11.2010
Сообщений: 770
Записей в блоге: 14
Завершенные тесты: 1
10.05.2017, 19:02 #6
У меня получилось такое:

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
#include <iostream>
 
int gcd( int a, int b )
{
    while( a && b )
        if( a > b )
            a %= b;
        else
            b %= a;
    return a + b;
}
 
template<typename... Args>
int gcd( int a, Args... args )
{
    return gcd( a, gcd( args... ) );
}
 
int lcm( int a, int b )
{
    return a / gcd( a, b ) * b;
}
 
template <typename... Args>
int lcm( int a, Args... args )
{
    return lcm( a, lcm( args... ) );
}
 
int main()
{
    int k, l, m, n, d;
    std::cin >> k >> l >> m >> n >> d;
    std::cout << d / k + d / l + d / m + d / n
        - d / lcm( k, l ) - d / lcm( k, m ) - d / lcm( k, n ) - d / lcm( l, m ) - d / lcm( l, n ) - d / lcm( m, n )
        + d / lcm( k, l, m ) + d / lcm( k, l, n ) + d / lcm( k, m, n ) + d / lcm( l, m, n )
        - d / lcm( k, l, m, n );
}
1
GoldenId
10.05.2017, 19:06
  #7

Не по теме:

Кликните здесь для просмотра всего текста
Задача принцесса калечит драконов

0
GoldenId
131 / 130 / 64
Регистрация: 11.11.2010
Сообщений: 770
Записей в блоге: 14
Завершенные тесты: 1
10.05.2017, 19:10 #8
Зато без цикла...
0
10.05.2017, 19:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2017, 19:10
Привет! Вот еще темы с решениями:

Принцесса или тигр?
В некотором царстве правил король. Однажды он решил провести эксперимент над...

Программа DD Разборчивая принцесса
Программа DD &quot;Разборчивая принцесса&quot;. (со стр. 451. Самоучителя с...

Выведите количество пострадавших драконов
Помогите решить такую задачку, а то не понимаю.. Буду очень благодарен ...

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача)
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной...


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

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

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