2013いい加減な計算式


いい加減な計算式の明ちゃんはせっかちで、小学校に通っていたとき、先生が黒板に書いた問題をよく書き間違えました.ある時、先生が出したテーマは36 x 495=?396 x 45=?しかし、結果は劇的で、彼の答えは意外にも正しい!!36*495=396*45=17820のような偶然の一致はまだたくさんあるかもしれませんが、例えば、27*594=297*54 a b c d eは1~9の異なる5つの数字を表すと仮定する(注意はそれぞれ異なる数字で、0は含まれていません)ab*cde=adb*ceのような形を満たす数式は全部で何種類ありますか?コンピュータの強みを利用して可能性をすべて探して、異なる数式の種類数に答えてください.乗算交換律を満たす数式は異なる種類と計算されているので、答えは偶数に違いありません.答えはブラウザで直接提出されます. 注意:最終統計の種類数を表す数字は1つだけ提出し、解答プロセスやその他の余分な内容は提出しないでください.
答え:142
标题:暴力でしょう...O(9^5)...大きくない.....
コード:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,b,c,d,e;
	int ans=0;
	int m,n;
	for(int a=1;a<=9;a++){
		for(int b=1;b<=9;b++){
			if(a!=b){
				for(int c=1;c<=9;c++){
					if(a!=b&&a!=c&&b!=c){
						for(int d=1;d<=9;d++){
							if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d){
								for(int e=1;e<=9;e++){
									if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e){
									
										if((a*10+b)*(c*100+d*10+e)==(a*100+d*10+b)*(c*10+e))
										ans++;
									}
								}
							}
						}
					}
				} 
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}