GESP2025年6月认证C++三级( 第三部分编程题(1)奇偶校验)

参考程序1

cpp 复制代码
#include <cstdio>       // 提供 scanf 和 printf 的头文件
using namespace std;

int n, v;               // n 表示数据个数,v 用于统计所有数据中 1 的个数

int main() {
    scanf("%d", &n);    // 输入数据个数
    for (int i = 1; i <= n; i++) {
        int c;
        scanf("%d", &c);    // 读取一个数据

        // 将该数据按位右移,并统计它的二进制表示中 1 的数量
        while (c) {
            v += c & 1;     // 如果最低位是 1,v 加一
            c >>= 1;        // 右移一位,准备处理下一位
        }
    }

    // 输出两个值:1的总数,和该总数的奇偶性(v&1 = 1 表示奇数,0 表示偶数)
    printf("%d %d\n", v, v & 1);

    return 0;
}

参考程序2

cpp 复制代码
#include <cstdio>
using namespace std;

int main() {
    int n, v = 0;        // v 表示统计所有二进制中 1 的个数
    scanf("%d", &n);     // 读入数据个数
    for (int i = 0; i < n; i++) {
        int c;
        scanf("%d", &c); // 读入一个整数
        while (c > 0) {
            if (c % 2 == 1)  // 如果最低位为 1,说明是奇数,统计 1
                v++;
            c = c / 2;       // 除以 2,去掉最低位
        }
    }
    printf("%d %d\n", v, v % 2);  // 输出总 1 的个数 和 校验码(奇数为 1,偶数为 0)
    return 0;
}
相关推荐
anew___10 小时前
舵机——让 Arduino 动起来
c++·stm32·单片机·嵌入式硬件·c
qq_3449205610 小时前
Qt 鼠标双击QLabel全屏显示图像
c++·qt
f狐0狸x10 小时前
【C++修炼之路】C++继承的探索
c++·继承
虚无的纽扣10 小时前
【C++】C++11的魔法:不止右值引用,C++11赋予的编程神力
c++
码匠许师傅11 小时前
【C++三方组件】RE2:工业级正则的安全与性能
c++
ThornArmor11 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
j7~11 小时前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架
qq_1998868711 小时前
第5板块·第4节:性能优化中的高级技巧
c++·人工智能·gpu算力
郝学胜_神的一滴11 小时前
C++20模板元编程 04:变量模板 别名模板与模板Lambda实战
c++·visual studio
Methy11 小时前
一次线上死锁排查:std::list::size () 居然是 O (n)?
c++·后端