• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

C++ Решение задачи из курса [Udemy] Артём Баданов - Изучение C++ с нуля.

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2020
Сообщения
67
Реакции
10
Всем привет! Недавно нашёл слив курса Артёма Баданова на юг, и застрял на задание номер 9 пункт A,потом всё же решил её, и хочу поделится решением с объяснениями людям которые так же проходят этот курс. Снизу будет код и условие задачи.
9.1 Zadanie9.png

C++:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl


// Объявление функции main()
int main()
{
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;


    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
 
Последнее редактирование модератором:
такое решит даже восьмилетний ребенок
как можно было на таком застрять?
 
Круто,с делаешь мне резольвер , который будет лоудельту в 0 патрон фиксить?
 
Всем привет! Недавно нашёл слив курса Артёма Баданова на юг, и застрял на задание номер 9 пункт A,потом всё же решил её, и хочу поделится решением с объяснениями людям которые так же проходят этот курс. Снизу будет код и условие задачи.Посмотреть вложение 162776
C++:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl


// Объявление функции main()
int main()
{
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;


    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:
1627285093895.png
после:
1627285074803.png
 
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
Раз уж на то пошло, то зачем делать целую ветвь цикла если можно просто добавить && n => 0 в цикл проверки while
В условии всеравно ведь четко указано, что игрок может лишь проигрывать, поэтому достаточно лишь проверки в цикл,чтобы пользователь не сломал программу
 
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
а у меня к тебе вопрос, он отрицательные числа в день тратит?
а у меня к тебе вопрос, он отрицательные числа в день тратит?
или может в задаче где-то сказано,что он выигрывает? Не еб* мозги
 
а у меня к тебе вопрос, он отрицательные числа в день тратит?

или может в задаче где-то сказано,что он выигрывает? Не еб* мозги
Если твоя программа продолжает выполнять алгоритмы при неверно введенных данных для ее задачи, то такая программа считается неверно написанной
 
Если твоя программа продолжает выполнять алгоритмы при неверно введенных данных для ее задачи, то такая программа считается неверно написанной
его введенные данные должны быть по факту положительные,так что бред несешь
 
его введенные данные должны быть по факту положительные,так что бред несешь
Программа непонимает эту должность, если например пользователь введет отрицательное число правильная программа должна вывести ошибку, а не продолжать алгоритм
 
Программа непонимает эту должность, если например пользователь введет отрицательное число правильная программа должна вывести ошибку, а не продолжать алгоритм
ну давай миллион проверок сделаем для простой программы,при том что человек только начинает
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Очень легкая задача, а еще сделано плохо, если ввести отрицательное число в N, то будет пиздец)
Так правильнее будет
Код:
Expand Collapse Copy
#include <iostream> // для std::cout и std::endl

// Объявление функции main()
int main()
{
    setlocale(LC_ALL, "Russian");
    // объявляем три целочисленных переменных
    int n, days = 0, coins = 30;
    /*1. n - это переменная в которую пользователь вводить сколько монет будет тратиться ежедневно
    *2. Дни равны нули, потому что с каждым "тиком" цикла они будут прибавлятся.
    * 3.coins - Монет по условию нам дали 30.
    */

    // Просим пользователя ввести, сколько монет будет проигрываться за день.
    std::cout << "Enter n: ";
    std::cin >> n;
    if (n <= 0) // проверяем, выйгрывает ли он
    {
        std::cout << "он выйгрывает.";
        return 0;
    }
    while (coins > 0) /*Пока монеты будут больше 0, дни будут прибавлятся, а из монет будут вычитать n.
                      Потом когда всё же монеты стали равны нулю мы выходим из цикла и выводим на экран дни*/
    {
        ++days;
        coins -= n;
    }
    std::cout << days;
    return 0;
}
до:Посмотреть вложение 162787после:Посмотреть вложение 162786
а отрицательное колво монет может быть? Лишняя штука
Это как где-то говорили про нелогичность математики. Типа у меня было -5 коробок где в каждой по -5 бананов. Значит у меня всего было 25 бананов. Тупая математика... Бананы из воздуха появились...
 
Назад
Сверху Снизу