题目:
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是: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 这样的算式一共有多少种呢?
答案:142
解题思路:
ab * cde = adb * ce,这个格式是固定的,所以直接五重循环枚举暴力求解问题就可以了,详细的解题步骤见下面的代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long cnt=0;
for(int a=1;a<=9;a++)
for(int b=1;b<=9;b++)
for(int c=1;c<=9;c++)
for(int d=1;d<=9;d++)
for(int e=1;e<=9;e++)
{
if(a==b || a==c || a==d || a==e || b==c || b==d || b==e || c==d || c==e || d==e)
continue;
int x1=a*10+b;
int y1=c*100+d*10+e;
int x2=a*100+d*10+b;
int y2=c*10+e;
if(x1*y1==x2*y2)
cnt++;
}
cout<<cnt<<endl;
//system("pause");
return 0;
}