版权声明:如果转载,请注明出处。 https://blog.csdn.net/S_999999/article/details/88396137
题目:猜算式
你一定还记得小学学习过的乘法计算过程,比如:
273
x 15
------
1365
273
------
4095
请你观察如下的乘法算式
星号代表某位数字,注意这些星号中,
0~9中的每个数字都恰好用了2次。
请写出这个式子最终计算的结果,就是那个5位数是多少?
40096
#include<bits/stdc++.h>
using namespace std;
int a[10],vis[10];
int main(void){
for( int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
for( int k=0;k<=9;k++){
for( int l =0;l<=9;l++){
for( int m=0;m<=9;m++){
for( int n=0;n<=9;n++){
a[1] = i*100+j*10+k;
a[2] = l*109+m*10+n;
memset( vis , 0,sizeof( vis));
vis[i]++;
vis[j]++;
vis[k ]++;
vis[l]++;
vis[n]++;
vis[m]++;
a[3] = a[1] * n;
int t =a[3];
while( t ){
int tt = t%10;
vis[ tt ]++;
t/=10;
}
a[4] = a[1] * m ;
t = a[4];
a[4]*=10;
while( t ){
int tt = t%10;
vis[ tt]++;
t/=10;
}
a[5] = a[1]*l;
t = a[5];
a[5]*=100;
while( t ){
int tt = t%10;
vis[ tt ]++;
t/=10;
}
a[6] = a[3] + a[4] + a[5];
t = a[6];
while( t ){
int tt = t%10;
vis[ tt]++;
t/=10;
}
int flag = 0;
for( int ii=0;ii<=9;ii++){
if( vis[ii ] !=2 ){
flag = 1;
break;
}
}
if( flag == 0 ){
printf("%d %d %d %d %d %d\n",a[1],a[2],a[3],a[4],a[5],a[6]);
}
}
}
}
}
}
}
return 0;
}