给定 N个数,其大小范围为 [-10,+10]。在这 N个数中任取 2个数的和为 0的方案数有多少种。
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n], c = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (a[i] + a[j] == 0)
c++;
}
}
printf("%d", c);
return 0;
}
用桶算法
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int m, c = 0;
int t[21] = {0};
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
c += t[10-m];
t[m+10]++;
}
printf("%d", c);
return 0;
}