Там в соседнем форуме пост проскочил,
от которого многим стало малость неловко
Предлагаю быстренько решить тоже простую,
но чуть более забавную задачу
У меня в кармане s>=0 рублей.
Бутылка пива стоит x>=0 рублей.
Обратно их берут по у<x рублей.
Написать на Си выражение для числа бутылок, которое я смогу выпить.
Здравствуйте, Pushkin, Вы писали:
P>У меня в кармане s>=0 рублей. P>Бутылка пива стоит x>=0 рублей. P>Обратно их берут по у<x рублей. P>Написать на Си выражение для P>числа бутылок, которое я смогу выпить.
int s = 100; // 100 рублев в карманеint x = 8; // 8 рублев за бутылкуint y = 1; // за сколько принимают обратноint result = 0; // результатwhile( (s =((s-x)+y)) > 0 )
result++;
Здравствуйте, Pushkin, Вы писали:
P>Там в соседнем форуме пост проскочил, P>от которого многим стало малость неловко P>Предлагаю быстренько решить тоже простую, P>но чуть более забавную задачу
P>
P>У меня в кармане s>=0 рублей.
P>Бутылка пива стоит x>=0 рублей.
P>Обратно их берут по у<x рублей.
P>Написать на Си выражение для
P>числа бутылок, которое я смогу выпить.
F>int s = 100; // 100 рублев в кармане
F>int x = 8; // 8 рублев за бутылку
F>int y = 1; // за сколько принимают обратно
F>int result = 0; // результат
F>while( (s =((s-x)+y)) > 0 )
F> result++;
F>
F>Я правильно все понял?
Ответ ты конечно получишь, но за O(S)
Я имел в виду выражение.
Три названия для переменных даны, надо просто расставить арифметические знаки!
P>У меня в кармане s>=0 рублей.
P>Бутылка пива стоит x>=0 рублей.
P>Обратно их берут по у<x рублей.
P>Написать на Си выражение для
P>числа бутылок, которое я смогу выпить.
P>PS
P>На эти деньги
Если можно пользоваться виртуальными пустыми бутылками, то
result = s / (x - y);
Мышки плакали и кололись, продолжая жрать кактусы, — но не из денег, а только б вечность проводить...
Здравствуйте, Pushkin, Вы писали:
P>Здравствуйте, mrhru, Вы писали:
M>>Если можно пользоваться виртуальными пустыми бутылками, то
P>Как это?
P>Может и пиво пить виртуальное? P>(Ответ будет содержать мнимую часть )
Это просто. Если на последнее пиво не хватает ровно стоимости пустой бутылки,
то шарим рукой по помойке, находим пустую бутылку, сдаем её, покупаем пиво, пустую
бутылку аккуратно возвращаем на помойку.
Мышки плакали и кололись, продолжая жрать кактусы, — но не из денег, а только б вечность проводить...
[]
P> Ответ ты конечно получишь, но за O(S) P>Я имел в виду выражение. P>Три названия для переменных даны, надо просто расставить арифметические знаки!
Если переменные можно использовать несколько раз, то вот (так, навскидку):
int s = 100; // 100 рублев в карманеint x = 8; // 8 рублев за бутылкуint y = 1; // за сколько принимают обратноint result = (s / x) + ((s % x) + ((s/x)*y))/x;
P>У меня в кармане s>=0 рублей.
P>Бутылка пива стоит x>=0 рублей.
P>Обратно их берут по у<x рублей.
P>Написать на Си выражение для
P>числа бутылок, которое я смогу выпить.
P>PS
P>На эти деньги
Раз денег никто не одалживает...
Рассмотрим ону итерацию (выпил сдал). После итерации у нас осталось денег s(i) = s(i-1)-(x-y)*n(i), где n(i)-число выпитых бутылок. Если s(i)<x — итерации продолжаются , если меньше — все .
Т.е. задача сводится к следующей:
Сколько раз из первоначальной суммы мы можем вычесть (x-y) пока остаток не станет меньше x.
Сразу вычтем из s x. Тогда задача сведется к эквивалентной:
Сколько раз из (s-x) мы можем вычесть (x-y) пока остаток не станет меньше 0.
F>int s = 100; // 100 рублев в кармане
F>int x = 8; // 8 рублев за бутылку
F>int y = 1; // за сколько принимают обратно
F>int result = 0; // результат
F>while( (s =((s-x)+y)) > 0 )
F> result++;
F>
Это верно только если продают пиво и принимают бутылки в одном месте, что зачастую неверно
С учетом того, что сначало должно хватить денег на пиво, а потом мы поимеем со сдачи пустых... И еще, цены на пиво какие-то нереальные (по поводу бутылок ничего сказать не могу)
int s = 100; // рублев в карманеint x = 20; // рублев за бутылкуint y = 1; // за сколько принимают обратноint result = 0; // результатwhile( (s -= x) > 0 )
{
result++;
s += y;
}
Здравствуйте, Pushkin, Вы писали:
P>Там в соседнем форуме пост проскочил, P>от которого многим стало малость неловко P>Предлагаю быстренько решить тоже простую, P>но чуть более забавную задачу
P>
P>У меня в кармане s>=0 рублей.
P>Бутылка пива стоит x>=0 рублей.
P>Обратно их берут по у<x рублей.
P>Написать на Си выражение для
P>числа бутылок, которое я смогу выпить.
P>PS
P>На эти деньги
Помню препод по мат основам информации расказывал:
1) просто пьянка — это берём деньги и пропиваем
2) производная пьянка — сдаём бутылки и пьём дальше (уже хорошо)
3) пьянка удалась — вторая производная не равна нулю