(一个文件多组数据输入的)韩信点兵问题

韩信点兵问题

网上找到的答案都是只能输入一组数据立即给出结果的,这里是能输入多组数据然后一次性输出全部结果的。

描述

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

样例输入:

2 1 3

2 1 6

样例输出:case 1:41

case 2:No answer


代码如下(由于输入不能靠回车,所以需要按住ctrl+d再回车即可)

/*韩信点兵*/
#include<stdio.h>
int main()
{
	int a[40],b[40],c[40],i;
	int kase=0;//显示第几个案例
	int x=0;
	while(scanf("%d %d %d",&a[x],&b[x],&c[x])!=0)
	{
		x++;
		if(scanf("%d %d %d",&a[x],&b[x],&c[x])!=0)
			x++;
		else
			break;	
	}
	
	
	int j=0;
	for(;j<x;j++)
	{	int print=1;//是否有解 
		for(i=10;i<=100;i++)
		{
			if(i%3==a[j]&&i%5==b[j]&&i%7==c[j])
			{
				printf("case %d:%d\n",++kase,i);
				print=0;
				break; 
			}
		}
		if(print) printf("No answer.\n");
		
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/qq_42740816/article/details/85796446