poj 1085
题目大意: 有一个币值系统,里面有 1元,2元,5元,其数量分别为 num1 张,num2 张,num3张,
现在需要 求出最小不能表示的币值。
解题思路:
可以分为三类:(1)没有 1 元的,那么输出 1;
(2)没有5 元的 或者(1,2 元的价值总和小于 4),那么输出 值为 num1+2 * num2 +1;
(3)1,2 元的价值总和 〉= 4,那么 就可以 4—〉5,即 最大可表示数为:num1+2 * num2+5*num3;
code:
#include <stdio.h>
int main()
{
int num1,num2,num3,max12,max;
while(1)
{
scanf("%d%d%d",&num1,&num2,&num3);
if(num1==0&&num2==0&&num3==0)break;
if(num1==0){printf("1\n");continue;}
max12=num2*2+num1;
if(num3==0||max12<4)
{printf("%d\n",max12+1);continue;}
//只要有一个4,就可以变为5;即最大数为下面的max
max=num1+num2*2+num3*5;
printf("%d\n",max+1);
}
return 0;
}