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;
}
相关推荐
QiLinkOS6 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
mit6.8247 小时前
阅读的核心,是再读
c++
upgrador9 小时前
基础知识:C++ STL构造函数的左闭右开惯例及其实现原理
开发语言·c++
凯瑟琳.奥古斯特11 小时前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
林中青木11 小时前
CT重构原理及C++代码实现
c++·计算机视觉·重构
满天星830357711 小时前
Protobuf的介绍及使用
c++
☆cwlulu11 小时前
调试排查工具介绍(gdb、strace、Valgrind等)
开发语言·c++·嵌入式硬件·ubuntu
卷无止境12 小时前
C++ 存储类说明符(Storage Class Specifier)大横评
c++·后端
卷无止境12 小时前
C++ 编程的一大坑:非常量全局变量是"万恶之源"
c++·后端
C语言小火车12 小时前
C++ 快速排序(Quick Sort)深度精讲:分治思想、Lomuto 分区法及三数取中优化,面试手撕必会
c语言·开发语言·c++·面试·排序算法·快速排序