C语言 韩信点兵问题

来源:互联网 发布:机器学习实战smo算法 编辑:程序博客网 时间:2024/06/05 03:59

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组

数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。

样例输入:

2 1 6

2 1 3

样例输出:

Case 1: 41

Case 2: No answer


题目说了总人数不小于10,不超过100,而且只要符合条件的最小的那个数,那么可以使用枚举法:

#include <stdio.h>int main(){    int a, b, c;    int ct = 1;    while(3 == scanf("%d%d%d", &a, &b, &c))    {        int i;        for(i = 10; i <= 100; ++i)        {            if((i % 3 == a) && (i % 5 == b) && (i % 7 == c))            {                printf("Case %d: %d\n", ct, i);                break;            }        }        if(i > 100) printf("Case %d: No answer\n", ct);    }    return 0;}
0 0
原创粉丝点击