2016蓝桥杯C语言B组第三题

题目为:

凑算式


     B      DEF
A + --- + ------- = 10
     C      GHI
     
(如果显示有问题,可以参见【图1.jpg】)
 
 


这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。




比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。


这个算式一共有多少种解法?




注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

————————————————————————————————————————————————————————————————————

这道题目真的是坑到我了,毕竟第一二题太简单了。首先,我没有看完题,直接用for()for()for()这样一直写下去再加个if(==10)来算,他是要求ABCD这些所代表的数字不相同,所以我一开始算出的答案超级大的

第二次,我注意到了,然后我就决定当码农了,也不算很多吧,就是if(a==b || a== c …… h==i)一直写啊写,如果有这些情况就continue,绝对不能break啊!然而答案还是错的,我就在思考一个新的问题了,除法,整形除以整形还是整形是吧?嗯。。。。。

第三次,这是真的好坑啊,我要将除法其中一个转换为double型再去运算,否则结果是不全的

所以,我的天,代码如下:

#include<stdio.h>
#define FOR(i) for(i=1;i<10;i++)
int main()
{
	int a,b,c,d,e,f,g,h,i,num=0;
	FOR(a)
	FOR(b)
	FOR(c)
	FOR(d)
	FOR(e)
	FOR(f)
	FOR(g)
	FOR(h)
	FOR(i)
	{
		if(a == b || a == c || a == d || a == e || a ==f || a == g || a == h || a == i || b == c ||b == d|| b == e|| b == f ||b == g ||b == h ||b == i ||
		c == d||c == e ||c == f ||c== g ||c == h ||c == i ||d == e|| d == f|| d == g ||d == h ||d == i 
		||e == f ||e == g|| e == h|| e == i ||f == g|| f == h|| f == i ||g == h ||g == i|| h == i)
			continue; 
		if(a+(double)b/c+(double)(d*100+e*10+f)/(g*100+h*10+i)==10)
			num++;
	}
	printf("%d",num);
	return 0; 
}
苍天啊,最后答案算出来是29.。。。吐血

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值