本文主要是介绍给定n个数,求其中4个数的和是否能为0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
设a < b < c < d。枚举a,b,确保c,d不等于a,b且互不相等时,枚举c,d。
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 1000 + 2;
int num[maxn];
int main()
{
int n;
scanf("%d",&n);
for (int i = 0; i < n; i ++) {
scanf("%d",&num[i]);
}
sort(num,num + n);
for (int i = 0; i < n; i ++) {
for (int j = i + 1; j < n; j ++) {
int key = -num[i] - num[j];
int l = j + 1,r = n - 1;
while (l < r) {
if (num[l] + num[r] == key) {
printf("Yes\n");return 0;
}
if (num[l] + num[r] > key) {
r --;
}
else l ++;
}
}
}
printf("No\n");
return 0;
}
这篇关于给定n个数,求其中4个数的和是否能为0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!