关于一个奇怪的错误
查看原帖
关于一个奇怪的错误
374769
Epi4any楼主2022/11/6 09:28

60pts:

#include <bits/stdc++.h>
using namespace std;
int exrp() {
	int cnt = 0;
	char ch;
	while (scanf("%c", &ch) != EOF) {
		if (ch == 'a') cnt++;
		if (ch == '|') cnt = max(cnt, exrp());
		if (ch == '(') cnt = cnt + exrp();
		if (ch == ')') return cnt;
	}
	return cnt;
}
int main() {
	cout << exrp() << endl;
	return 0;
}

100pts:

#include <bits/stdc++.h>
using namespace std;
int exrp() {
	int cnt = 0;
	char ch;
	while (scanf("%c", &ch) != EOF) {
		if (ch == 'a') cnt++;
		if (ch == '|') return max(cnt, exrp());
		if (ch == '(') cnt = cnt + exrp();
		if (ch == ')') return cnt;
	}
	return cnt;
}
int main() {
	cout << exrp() << endl;
	return 0;
}

不太理解第8行的return是什么逻辑,为什么加上就对了?

2022/11/6 09:28
加载中...