求助
查看原帖
求助
906320
Milky_Cat楼主2022/12/16 19:42

我写了一个暴力解法,发现题目理解不了……

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;
}
2022/12/16 19:42
加载中...