Задача алкоголика :)
Вот, именно 5 бутылок лимонада по 27 копеек и можно было купить в СССР на рубль. И 25 копеек сдачи оставалось. Потому что выпив первые три бутылки, можно было сдать их по 12 копеек и купить на 19+24=55 копеек ещё две, которые тоже потом сдаются :)
Проще всего подобную задачу решить с помощью рекурсии:
#include <iostream> using namespace std; int count(int money,int price,int refund) { if (money<price) return 0; int cnt = money / price; //cout << endl << cnt << ", " << money-cnt*price //<< ", " << cnt*refund << ", " << money-cnt*price+cnt*refund; return cnt + count(money-cnt*price+cnt*refund,price,refund); } int main() { int money = 100; //сумма, коп. int price = 27; //стоимость за единицу, коп. int refund = 12; //стоимость возврата с покупки, коп. //cout << endl << "Количество, сдача, возврат, сдача+возврат"; cout << endl << "N=" << count (money,price,refund); cin.get(); return 0; }
Ну и ещё можно много разных модификаций такой постановки придумать - раз, два, и т.п. Но некогда, это так, на разговор отвлёкся :)
02.04.2018, 18:10 [1969 просмотров]