韩信点兵

韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次都只是掠一眼队伍的排位就知道人数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。

样例输入: 2 1 6

样例输出: 41

样例输入: 2 1 4

样例输出: No Answer

程序分析:

1、输入包含多组数据。while(scanf("%d%d%d",&a,&b,&c)!=EOF)

2、已知总人数不小于10,不超过100。for(i=10;i<=100;i++)

3、每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7。if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)

#include<stdio.h>
int main()
{
    int a,b,c;
    int i,t=1;
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    while(scanf("%d%d%d",&a,&b,&c)!=EOF)  
    {  
        for(i=10;i<=100;i++)  
        {  
            if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)  
            {  
                printf("Case %d: %d\n",t,i);  
                t++;  
                break;  
            }  
        }  
        if(i>100)  
        {             
            printf("Case %d: No answer\n",t++);  
            t++;  
        }  
    }  
    return 0;  
}  

 

posted @ 2017-11-12 13:29  不负、  阅读(234)  评论(0编辑  收藏  举报