HDU 1085 Holding Bin-Laden Captive!(数论)

Description
给a个1,b个2,c个5,问它们不能组成的最小正整数是谁
Input
多组用例,每组用例占一行包括三个整数a,b,c,以0 0 0结束输入
Output
对于每组用例,输出给出的数不能组成的最小正整数
Sample Input
1 1 3
0 0 0
Sample Output
4
Solution
任意一个大于等于5的正整数显然可以被表示成5x+y的形式,任何一个小于5的正整数显然也可以被表示成2x+y的形式,当a=0时显然1不能被组成,当a+2b<4时,不管c有多少都不能组成a+2*b+1<5,否则所有小于等于a+2b+5c的正整数都可以被表示,即此时不能表示的最小正整数是a+2b+5c+1
Code

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    int a,b,c;
    while(scanf("%d%d%d",&a,&b,&c)&&(a||b||c))
    {
        if(a==0)
            printf("1\n");
        else if(a+2*b<4)
            printf("%d\n",a+2*b+1);
        else
            printf("%d\n",a+2*b+5*c+1);
    }
    return 0;
}

你可能感兴趣的:(HDU 1085 Holding Bin-Laden Captive!(数论))