hdu 1085 Holding Bin-Laden Captive!

题目意思是给定数量的1,2,5面值的硬币,问不能够成的最小面值。这题应该有多种解法,动态规划,母函数应该都行。不过最简单的方法还是发现了其中的规律以后,其实一般情况下结果应该都是a + 2 * b + 5 * c + 1,特殊情况加以判断即可,情况也不多,几行代码搞定。

#include <stdio.h>
int main() {
int a, b, c, x;
/* freopen("data.in", "r", stdin);*/
while (scanf("%d%d%d", &a, &b, &c) != EOF) {
if (a == 0 && b == 0 && c == 0) {
break;
}
x
= a + 2 * b + 5 * c;
if (a == 0) {
x
= 0;
}
else if (b == 0 && a < 4) {
x
= a;
}
else if(a == 1 && b == 1) {
x
= 3;
}
printf(
"%d\n", x + 1);
}
return 0;
}

你可能感兴趣的:(HDU)