我写了一个暴力解法,发现题目理解不了……
Code:
#include<bits/stdc++.h>
using namespace std;
int n, bbbb, ans = 0;
int nqueue[100], p = 0, squeue[100];
bool cheak(int a, int b, int c, int d, int e) {
memset(squeue, 0, sizeof(squeue));
int cs1 = a * 100 + b * 10 + c;
int cs2 = d * 10 + e;
int ji = cs1 * cs2;
int ji1 = cs1 * d;
int ji2 = cs1 * e;
if(ji>=10000)return 0;
squeue[0] = ji / 1000;
squeue[1] = ji / 100 % 10;
squeue[2] = ji / 10 % 10;
squeue[3] = ji % 10;
squeue[4] = ji1 / 100;
squeue[5] = ji1 / 10 % 10;
squeue[6] = ji1 % 10;
squeue[7] = ji2 / 100;
squeue[8] = ji2 / 10 % 10;
squeue[9] = ji2 % 10;
int flag;
for(int i=0;i<10;i++){
flag=0;
for(int j=0;j<n;j++){
if(squeue[i]==nqueue[j]){
flag++;
break;
}
}
if(flag==0)return 0;
}
cout<<cs1<<' '<<cs2<<' '<<ji1<<' '<<ji2<<' '<<ji<<'\n';
return 1;
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> bbbb;
nqueue[p++] = bbbb;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
for (int m = 0; m < n; m++) {
if (cheak(i, j, k, l, m))ans++;
}
}
}
}
}
cout<<ans;
}