第七届蓝桥杯javaB组真题解析-凑算式(第三题)

别来无恙 提交于 2019-12-11 07:43:05
/*
凑算式

     B      DEF
A + --- + ------- = 10
     C      GHI
     
(如果显示有问题,可以参见【图1.jpg】)
     
     
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

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

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

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
*/
#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int count=0;
	
	for(int a=1;a<=9;a++)
	{
		for(int b=1;b<=9;b++)
		{
			if(a==b)
			continue;
			for(int c=1;c<=9;c++)
			{
				if(a==c || b==c)
				continue;
				for(int d=1;d<=9;d++)
				{
					if(a==d || b==d || c==d)
					continue;
					for(int e=1;e<=9;e++)
					{
						if(a==e || b==e || c==e || d==e)
						continue;
						for(int f=1;f<=9;f++)
						{
							if(a==f || b==f || c==f || d==f ||e==f)
							continue;
							for(int g=1;g<=9;g++)
							{
								if(a==g || b==g || c==g || d==g || e==g || f==g)
								continue;
								for(int h=1;h<=9;h++)
								{
									if(a==h || b==h ||c==h || d==h || e==h ||f==h ||g==h)
									continue;
									for(int i=1;i<=9;i++)
									{
										if(a==i || b==i || c==i || d==i || e==i || f==i || g==i ||h==i)
										continue;
										double sum=a+b*1.0/c+(100*d+10*e+f)*1.0/(100*g+10*h+i)-10;
										if(sum==0)
										count++;
									}
								}
							}
						}
					}
				}
			}
		}
	}
	cout<<count<<endl;
	return 0;
}

结果为:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!