题目(附链接):小蓝和小桥的挑战
解题思路:
题目要求乘积和求和都不为零,乘积为零只需要每个数都不为零即可,碰到零都加上一即可解决,乘积为零解决之后,看和是否为零,若此时和为零将其中某个数加一即可解决
题解如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T;
cin >> T;
for (int i = 0; i < T; i++)
{
int n;
cin >> n;
int a = 0, sum = 0;
for (int j = 0; j < n; j++)
{
int x;
cin >> x;
if (x == 0)
a++;
sum += x;
}
if (a > 0)
{
if (sum + a == 0)
cout << a + 1 << '\n';
else
cout << a << '\n';
}
else
{
if (sum == 0)
cout << 1 << '\n';
else
cout << 0 << '\n';
}
}
return 0;
}