Помощь с циклами

204
28 ноября 2021, 13:40

Задание: Друзья составили про Петю задачу: наш друг Петя ест невкусную макаронину длиной 60км. Каждый день он съедает N метров этой макаронины (случайное число от 50 до 500). Сколько дней понадобится Пете, чтобы съесть всю макаронину? Сколько метров этой макаронины осталось Пете на последний день? Показать таблицу ежедневных Петиных достижений.

Код:

private void button1_Click(object sender, EventArgs e)
    {
        int m = 6000;
        Random rhd = new Random();
        int n;
        int d=0; 
        while (m > 0)
        {
            d++;
            n = rhd.Next(50, 500); //сколько в день съедает
            m = m - n; //остаток
            listBox1.Items.Add(String.Format("{0,3} день. Съедено {1,3} м. Осталось {2,5} м.", d,n,m));
        }

Как он работает:

Ошибка заключается в том, что Петя уходит в минус, мне нужно это как-то предотвратить. Может кто-нибудь подскажет как это сделать?

Answer 1

надо проверять на отрицательные значения и всучали если вы выходите в минус корректировать его. и 60км = 60000м а не 6000м

Вариант 1 n = Math.Min(m, rhd.Next(50, 500)) от пользователя @tym32167

Вариант 2

private void button1_Click(object sender, EventArgs e)
    {
        int _distance = 60000;
        int _todayEated = 0;
        Random rnd = new Random();
        int days = 0;
        while (_distance>0)
        {
            _todayEated = rnd.Next(50, 500);
            if (_distance - _todayEated < 0)
            {
                var synceat = _distance - _todayEated;
                _todayEated= _todayEated + synceat;
                _distance = _distance - _todayEated;
            }
            else
            {
                _distance = _distance - _todayEated;
            }

            days++;
            string result = string.Format("{0} день. Сьедено {1} M. Осталось {2} М.", days, _todayEated, _distance);
            listBox1.Items.Add(result);

        }

    }
READ ALSO
Десереализация XML ответа от SOAP

Десереализация XML ответа от SOAP

Есть сторонний SOAP сервискоторый возвращает ответ виде XML

203
Laravel, Eloquent - method find() not found in App

Laravel, Eloquent - method find() not found in App

Описываю метод destroy класса TasksController: Написал вот такую функцию:

136
Извлечь данные в цикле php

Извлечь данные в цикле php

Прошу помочь с задачей: есть цикл, в котором выводяться личные сообщения, юзера с его рефером (собеседником)

85