写一下午得出此题的坑……
查看原帖
写一下午得出此题的坑……
658423
Tgmoss楼主2022/4/9 20:06

看了下题解才发现 1+4=5 与 2+3=5 只能算一种! “加数和被加数必须是集合中的两个不同的数”,其和也不会重复!

所以我建议不要忘了判断没有有相同的和。

#include <iostream>
#include <vector>

using namespace std;

int main() {
	int n, m[100];
	vector<int> s;
	cin >> n;
	for(int i = 0; i < n; i++) {
		cin >> m[i];
	}
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < n; j++) {
			if(i == j) continue;
		    for(int k = 0; k < n; k++) {
				if(k == i || k == j) continue;
				if(m[k] == m[i] + m[j]) {
					bool b = true;
					for(int x : s) {
						if(x == m[k]) {
							b = false;
							break;
						}
					}
					if(b) s.push_back(m[i] + m[j]); 
				}
			}
		}
	}
	cout << s.size();
	return 0;
}
2022/4/9 20:06
加载中...