补全代码
#include <bits/stdc++.h>using namespace std;
const int N= 60;
int a;
int main()
{
int t,n;
cin>>t;
while(t--)
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a;
}
bool is_two=true;
for(int i=0;i<n;i++)
{
if(a%2!=0)
{
is_two =false;
}
}
// if(is_two)cout<<"YES"<<endl;//表示全部是奇数
bool is_one=true;
for(int i=0;i<n;i++)
{
if(a%2==0)
{
is_one=false;
}
}
if(is_one||is_two)cout<<"YES"<<endl;
else
{
}
}
}
else的逻辑是奇数位奇数,偶数为为偶数;或者奇数位偶数,偶数位奇数,则输出YES,否则输出NO else
{
bool is_alternate = true;
for (int i = 0; i < n; i++)
{
if (i % 2 == 0 && a[ i] % 2 != 0)
{
is_alternate = false;
break;
}
if (i % 2 != 0 && a[ i] % 2 == 0)
{
is_alternate = false;
break;
}
}
if (is_alternate)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
这段代码中,我添加了一个新的逻辑块来判断奇数位是否为奇数,偶数位是否为偶数,如果符合这个条件则输出"YES",否则输出"NO"。这里我使用了一个新的布尔变量is_alternate来表示是否符合条件。通过遍历数组a[],如果发现奇数位上是奇数而偶数位上不是偶数,或者偶数位上是偶数而奇数位上不是奇数,则将is_alternate设置为false,并且跳出循环。最后根据is_alternate的值输出对应的结果。 根据你的描述,我可以帮你完成这段代码。你可以使用以下逻辑来判断奇数位和偶数位上的数字是否满足条件:
if (is_one || is_two) {
cout << "YES" << endl;
} else {
bool is_valid = true;
for (int i = 0; i < n; i++) {
if (i % 2 != a % 2) {
is_valid = false;
break;
}
}
if (is_valid) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
这段代码中,我们首先假设满足条件(即is_valid为true),然后遍历数组,检查奇数位和偶数位上的数字是否满足条件,如果有任何一个位置不满足,则将is_valid设置为false,并且跳出循环。最后根据is_valid的值输出对应的结果。
希望这能够帮到你,如果还有其他问题或者需要进一步帮助,请随时告诉我。
页:
[1]