ZOJ - 1110 Dick and Jane

ZOJ - 1110 Dick and Jane_第1张图片
/*
这道题本来不难,问题在于题目第一句话就是题目所指的12岁可能是马上满13岁,就如12.5岁。
所以我们只需要枚举三个动物的值,然后限定条件。
*/

#include
#include
using namespace std;
int main()
{
    int s,p,y,j;
    while(scanf("%d%d%d%d",&s,&p,&y,&j)!=EOF)
    {
        int flag=1;
        for(int c=0;c<=13+j;c++)//枚举Yer..因为三个年纪之和是12+j所以最大为12+j岁
        {
            for(int b=c+p;b<=c+p+1;b++)//因为当c出生时b是p岁,所以b=c+p,又因为可能c在这个岁数时可能是c岁多,所以b的岁数可能会多一岁。
            {
                for(int a=c+y;a<=c+y+1;a++)//a同上
                {
                    if((a+b+c==12+j)&&(a==b+s||a==b+s+1))
                    {
                        printf("%d %d %d\n",a,b,c);
                    }
                }
            }
        }
    }
    return 0;
}

你可能感兴趣的:(题目题解)