初学者请教C++题目~

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:56:58
有形如 AB×CDE=FGHI 的算式,ABCDEFGHI恰好是1,2,3,4,5,6,7,8,9中的一个,且不重复,请还原该算式。
越简洁的算法越好,因为我比较数字有没重复,就是把每个数各位数字取出依次比较,写的太长。。。

感谢楼下的专家和朋友的帮助,能否给出源码我参考一下。

#include<iostream.h>
void main()
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a<10;a++)
for(b=1;b<10;b++)
for(c=1;c<10;c++)
for(d=1;d<10;d++)
for(e=1;e<10;e++)
for(f=1;f<10;f++)
for(g=1;g<10;g++)
for(h=1;h<10;h++)
for(i=1;i<10;i++)
if(((a*10+b)*(c*100+d*10+e)==(f*1000+g*100+h*10+i))&&a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)
cout<<a<<b<<"*"<<c<<d<<e<<"="<<f<<g<<h<<i<<endl;
}

12×483 = 5796
18×297 = 5346
27×198 = 5346
28×157 = 4396
39×186 = 7254
42×138 = 5796
48×159 = 7632

穷举法,但是可以加一些限定条件减少运算次数
比如C的取值应该小于(10/A)<