暴力枚举 2013蓝桥杯C/C++ B组2 马虎的算式

题面

有五个数字a,b,c,d,e各不重复,在1~9中取值
存在以下现象:
ab * cde == adb * ce
求满足这种现象的算式一共有多少个?
注意:满足乘法交换律的计为不同种类,即数目一定是偶数个

代码
#include<iostream> 
using namespace std;
bool vis[10];
int main(){
	int a=1,b=2,c=3,d=4,e=5;
	int num1=0,num2=0,num3=0,num4=0;
	int num=0;
	for(a=1;a<=9;a++){
		for(b=1;b<=9;b++){
			if(a!=b){
				for(c=1;c<=9;c++){
					if(c!=a && c!=b){
						for(d=1;d<=9;d++){
							if(d!=a && d!=b && d!=c){
								for(e=1;e<=9;e++){
									if(e!=a && e!=b && e!=c && e!=d){
										int num1=a*10+b;
										int num2=c*100+d*10+e;
										int num3=a*100+d*10+b;
										int num4=c*10+e;
										if(num1*num2 == num3*num4){
											cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
											num++;
										}
									}
								}
							}
						}
					}
				}
			} 
		}
	}
	cout << num;
	return 0;
}
  1. 蓝桥杯常常有暴力枚举的题目
  2. 注意题意,偶数!
发布了34 篇原创文章 · 获赞 1 · 访问量 2599

猜你喜欢

转载自blog.csdn.net/qq_39685968/article/details/104488285