只过了一个测试点,请大佬帮忙看看
查看原帖
只过了一个测试点,请大佬帮忙看看
1078007
yuyuelong楼主2023/11/11 16:05
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
char pl[40][40], cl[40][40], pc[40][40];
int n;
bool check() {
			if (pl==pc) {
				return 1;
	}
	return 0;
}
void n1() {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			pl[j][i] = cl[n - 1 - j][n - 1 - i];
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			char n = pl[j][i];
			pl[j][i] = cl[j][i];
			cl[j][i] = n;
		}
	}
	cout<<endl;
}
void fan() {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			pl[j][i] = cl[n - 1 - j][i];
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			char n = pl[j][i];
			pl[j][i] = cl[j][i];
			cl[j][i] = n;
		}
	}
}
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			cin >> pl[j][i];
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			cin >> pc[j][i];
		}
	}
	if (check()) {
		cout << "6" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "1" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "2" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "3" << endl;
		return 0;
	}
	n1();
	fan();
	if (check()) {
		cout << "4" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "5" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "5" << endl;
		return 0;
	}
	n1();
	if (check()) {
		cout << "5" << endl;
		return 0;
	}
	cout << "7" << endl;
	return 0;
}

感觉代码思路上没有任何问题,但输出永远是7,请大佬帮忙看看是怎么回事。。

2023/11/11 16:05
加载中...