蓝桥杯决赛题---积分之迷的c语言解决

题目描述
小明开了个网上商店,卖风铃。共有3个品牌:A,B,C。
为了促销,每件商品都会返固定的积分。
小明开业第一天收到了三笔订单:
第一笔:3个A + 7个B + 1个C,共返积分:315
第二笔:4个A + 10个B + 1个C,共返积分:420
第三笔:A + B + C,共返积分…
你能算出第三笔订单需要返积分多少吗?
输出
请提交该整数,不要填写任何多余的内容。

仔细观察这两个式子,如果相减就可以消去c,变成:A + 3B = 105。然后再用循环来计算这道题就会变得很简单。

#include<stdio.h>
int main()
{
	int a,b,c;
	int i,j,jec;
	for(i=0;i<=35;i++) // 这个最大值就是直接用105/3算出来的 
	{
		jec = 0;
		for(j=0;j<=105;j++)
		{
			if(j+i*3 == 105)  //两式相减以后剩下的式子 
			{
				jec = 1;
				break;
			}
		}
		if(jec == 1)
		{
			break;
		}
	}
	b = i;
	a = j;
	c = 0;
	while(1)
	{
		if(3*a+7*b+c == 315) // 随表带进一个式子里算出c的值 
		{
		    break;
		}
		c++;
	}
	printf("%d\n",a+b+c);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46293423/article/details/104514231