蓝桥杯——凑算式(暴力 全排列)

     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;
int main(){
	int num=0;
	for(int a=1;a<=9;a++){
		for(int b=1;b<=9;b++){
			if(b==a)
			    continue;
			for(int c=1;c<=9;c++){
				if(c==a||c==b)
				    continue;
				for(int d=1;d<=9;d++){
					if(d==a||d==b||d==c)
					    continue;
					for(int e=1;e<=9;e++){
						if(e==d||e==c||e==b||e==a)
						    continue;
						for(int f=1;f<=9;f++){
							if(f==e||f==d||f==c||f==b||f==a)
							    continue;
							for(int g=1;g<=9;g++){
								if(g==f||g==e||g==d||g==c||g==b||g==a)
								    continue;
								for(int h=1;h<=9;h++){
									if(h==g||h==f||h==e||h==d||h==c||h==b||h==a)
									    continue;
									for(int i=1;i<=9;i++){
										if(i==h||i==g||i==f||i==e||i==d||i==c||i==b||i==a)
										    continue;
                                        int num1=a*c*(g*100+h*10+i);
                                        int num2=b*(g*100+h*10+i);
                                        int num3=c*(d*100+e*10+f);
                                        int num4=10*c*(g*100+h*10+i);
                                        if(num1+num2+num3==num4)
                                            num++;
									}   
								}
							}
						}
					}
				}
			}
		}
	}
	cout<<num<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/red_red_red/article/details/87376121