lsmCC 发表于 2023-11-12 21:44:22

补全代码

#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

isdkz 发表于 2023-11-12 21:44:29

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的值输出对应的结果。

Mike_python小 发表于 2023-11-12 21:45:02

根据你的描述,我可以帮你完成这段代码。你可以使用以下逻辑来判断奇数位和偶数位上的数字是否满足条件:


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]
查看完整版本: 补全代码