2025 年 06 月 三级真题(2)--奇偶校验

【题目】

【解题思路】

这道题的核心问题是如何求出所有数据转换成二进制数据后包含的 1 的个数。我们知道十进制转二进制采用的的是"除2倒取余"的方法,也就是转换为的二进制数据实际就是由原数据不断的除以2,同时保留余数,最后将余数逆序输出得到。而本题并不需要得到实际的二进制数据,只需要得到二进制数据中 1 的个数,所有我们只需要判断每一次得到的余数是0还是1,如果是 1 就统计。

【代码】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{

  int n;
  cin>>n;
  int a[n];
  int cnt=0;//统计1的个数
  int check;//校验码
  for(int i=0;i<n;i++)
  {  
    cin>>a[i];//输入一个数
    while(a[i]!=0)//求数转换为二进制之后,1的个数
    {
      if(a[i]%2==1)
        cnt++;
      a[i]/=2;//更新
    
    }
  }
  if(cnt%2==1)//如果1的个数为奇数个,则校验码为1
    check=1;
  else
    check=0;//否则校验码为0
  cout<<cnt<<" "<<check;
  
  return 0;
}
相关推荐
UIU11419 分钟前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
raindayinrain20 分钟前
c++设计模式
开发语言·c++·设计模式
旖旎夜光22 分钟前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
像风一样自由202031 分钟前
2.如何用FastAPI把一个Python算法封装成HTTP服务
python·算法·fastapi
D e re k ZH37 分钟前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
青少儿编程课堂38 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
Nuanyt41 分钟前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
海绵宝宝转agent1 小时前
LeetCodehot100题解
java·笔记·学习·算法·leetcode·深度优先
octopus_c1 小时前
C++ 运算符重载详解 && 日期类的实现
开发语言·c++
青少儿编程课堂2 小时前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛