HDU 1085 Holding Bin-Laden Captive!

来源:互联网 发布:linux配置网关命令 编辑:程序博客网 时间:2024/05/17 02:21

  poj 1085  

  题目大意: 有一个币值系统,里面有 1元,2元,5元,其数量分别为 num1 张,num2 张,num3张, 

 现在需要 求出最小不能表示的币值。

  解题思路:

     可以分为三类:(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;

}

原创粉丝点击