P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小朋友们发礼物。
现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔最少需要花费多少钱
学习了下大佬的思路,如下:
//P1909 买铅笔
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, n, m, _num, _money, num, money = 0;
scanf("%d", &num);
for (i = 0; i < 3; ++i) {
scanf("%d %d", &_num, &_money);
n = _num;
m = _money;
while (_num < num) {
_num *= 2;
_money *= 2;
}
while (_num > num) {
_num -= n;
_money -= m;
}
while (_num < num) {
_num += n;
_money += m;
}
if (_money < money || money == 0) {
money = _money;
}
}
printf("%d\n", money);
system("pause");
return 0;
}