AT2686

· · 题解

题目翻译

找一个序列,使这个序列中的 2 个数两两相乘除以 40

代码思路

  1. 二个数中有一个数是 4 的倍数。

  2. 二个数中都是 2 的倍数。

  1. 反之,输出 No

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int s(int c){ //便于指针时的判断
    int l=n;
    return l;
    }
    void f(int* x, int* y)
    {
    int a;
    int num1=0,num2=0; //定义实数。
    for(int i=1;i<=s(n);i++){
        cin>>a;
        if(a%4==0) num1++; //先判断整除4的时候。
        else if(a%2==0) num2++;
    }
    *x=num1; //指针指向 num1。
    *y=num2; //指针指向 num2。
    }
    int main(){
    int x,y;
    cin>>n;
    f(&x,&y);
    if(y/2+x>=n/2) //条件满足。
        cout<<"Yes";
    else          //条件不满足。
        cout<<"No";
    }