3800. 奇数还是偶数

该程序接收一个整数n的b进制表示,通过判断其各位数字的奇偶性来确定n的奇偶性。输入包括测试用例数T,每个测试用例包含b(基数)和k(位数),以及k个整数a的b进制表示。输出n是偶数或奇数。示例中给出了4组测试数据,并根据b进制数的奇偶性规律进行了判断。
摘要由CSDN通过智能技术生成

给定一个整数 n,它可以被表示为一个 k 位的 b 进制数,如下所示:

n=a1⋅bk−1+a2⋅bk−2+…+ak−1⋅b+ak
举例说明,如果 b=17,k=3,a=[11,15,7],那么 n=11⋅172+15⋅17+7=3179+255+7=3441。

请你判断 n 是奇数还是偶数。

输入格式
第一行包含整数 T,表示共有 T 组测试数据。

每组数据第一行包含两个整数 b 和 k。

第二行包含 k 个整数 a1,a2,…,ak。

n 的 b 进制表示不含前导 0,也就是说只有 k=1 时,a1 才有可能是 0。

输出格式
每组数据输出一行结果,n 是偶数则输出 even,奇数则输出 odd。

数据范围
1≤T≤10,
2≤b≤100,
1≤k≤105,
0≤ai<b,
同一测试点内所有 k 的和不超过 105。

输入样例:
4
13 3
3 2 7
10 9
1 2 3 4 5 6 7 8 9
99 5
32 92 85 74 4
2 2
1 0
输出样例:
even
odd
odd
even


#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];

int main()
{
    int t;
    cin >> t;
    while(t--) {
        int b, k;
        cin >> b >> k;
        for(int i=1; i<=k; i++) {
            cin >> a[i];
        }
        
        int even =0, odd = 0;
        bool flag = false;
        if(b % 2 == 1) flag = true;
        else flag = false;
        for(int i=1; i<=k; i++) {
            if(i == k && a[i] % 2 == 1) odd++; 
            else if(flag && a[i] % 2 == 1) odd++;
            else even++;
        }
        if(odd % 2 ==0) cout << "even" << endl;
        else cout << "odd" << endl;
    }
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值