凑算式 蓝桥杯 暴力解法

原题:

       B      DEF
A + --- + --------  = 10
       C      GHI
 
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

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

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

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

答案:29

思路:有九个不同的未知数,各不相同。最容易想到的方法就是暴力解法,9层遍历,再加一个查重,输出答案

#include<stdio.h>
int main()
{
	float a,b,c,d,e,f,g,h,i;
	int n=0;
	float fun[9];
	int cha(float fun[9])
	{
		int i,j;
		for(i=0;i<8;i++)
		{
			for(j=i+1;j<9;j++)
				if(fun[i] == fun[j])
				return 0;
		}
		return 1;
	}
	for(a=1;a<10;a++)
	{
			for(b=1;b<10;b++)
				{
					for(c=1;c<10;c++)
					{
						for(d=1;d<10;d++)
						{
							for(e=1;e<10;e++)
							{
								for(f=1;f<10;f++)
								{
									for(g=1;g<10;g++)
									{
										for(h=1;h<10;h++)
										{
											for(i=1;i<10;i++)
											{
										 		fun[0]=a;fun[1]=b;fun[2]=c;fun[3]=d;fun[4]=e;fun[5]=f;fun[6]=g;fun[7]=h;fun[8]=i;
												 float w= (a+b/c+(d*100+e*10+f)/(g*100+h*10+i));
												if(w == 10.0&& cha(fun))
												printf(" %.f %.f %.f %.f%.f%.f %.f%.f%.f  ``%d\n",a,b,c,d,e,f,g,h,i,++n);
											}
										}
									}
								}
							}
						}
					}
				}
	}
	return 0;
}

运行

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值