【组成原理】BYTE ME!
题目描述
If even parity is being used, each byte will have an even number of 1 characters. If odd parity is being used, each byte will have an odd number of 1 characters.
In this problem, we are looking for a single bit that has been corrupted. To help you find it, the last byte is not part of the data being transmitted, but is a parity byte. Each bit of the parity byte will be used to make the corresponding bits in the data bytes odd or even depending on the parity being used.
输入
There will be one further line of 8 characters (again 1 or 0) which will be the parity byte.In the parity byte, each bit is a parity bit for the corresponding bits in the preceding N lines, using the same parity as is used by the data bytes. The parity byte itself may not show the same parity as the data bytes.
输出
Line 1: Either the word Even or the word Odd to describe the parity being used by the bytes which are not broken.
Line 2: Byte <number> is broken
Line 3: Bit <number> is broken
<number> is the number of the appropriate byte or bit, where the first of each is number 1.
样例输入
3
1 0 1 0 1 1 1 0
1 1 0 1 1 1 0 0
1 0 1 1 1 0 0 0
0 0 1 1 1 1 0 1
样例输出
Odd
Byte 3 is broken
Bit 5 is broken
提示
Bytes 1 and 2 have an odd number of 1s but byte 3 has an even number. So odd parity is being used but byte 3 is broken.
The parity byte gives all columns of bits an odd number of 1s except for 5 where they are even, so bit 5 is broken. Bit 5 of byte 3 is corrupt.
【题解】:
很难得遇到一道组成原理为背景的题目了,深感欣慰,觉得这个题目有必要记录一下。
首先判断:奇数还是偶数判别法
其次判断那一个字节出现了问题。
最后判别哪一位上出现问题。
#include<bits/stdc++.h>
using namespace std;
const int N = ;
int a[N][N];
int s[N],n;
int row[N],col[N];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) for(int j=;j<=;j++)
scanf("%d",&a[i][j]),row[i]+=a[i][j],col[j] += a[i][j] ; for(int i=;i<=;i++)
scanf("%d",&s[i]),col[i]+=s[i]; int OE = , Odd = ,Even = ;
for(int i=;i<=n;i++){
if( row[i]& ) Odd ++ ;
else Even ++ ;
}
if( Odd == n- ) OE = ;
if( Even == n- ) OE = ;
//Ans 1
if( OE& ){
puts("Odd");
}else{
puts("Even");
} //Ans 2
for(int i=;i<=n;i++){
if( (OE & ) && (row[i]%==) ){
printf("Byte %d is broken\n",i);break;
}else if( (OE%==) && (row[i]&) ){
printf("Byte %d is broken\n",i);break;
}
} //Ans 3
for(int j=;j<=;j++){
if( (OE & ) && (col[j]%==) ){
printf("Bit %d is broken\n",j);break;
}else if( (OE%==) && (col[j]&) ){
printf("Bit %d is broken\n",j);break;
}
} return ;
}
【组成原理】BYTE ME!的更多相关文章
- weblogic漏洞总结 复现(未完)
复现方式 Docker复现 WEBlogic爆出了很多漏洞 先了解一下现在主流的版本 Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.1 Web ...
- 计算机存储负数以及int转byte时-128的出现
我们看下面这段代码 输出的结果的是128,这个没什么疑问 但是当我们不改变数值仅仅加了一个强制转换后 这时我们会发现结果会变成负的128.这时候我们就要怀疑了,为什么会出现这样的结果呢? 对于这个问题 ...
- Java中基本数据类型byte,short,char,int,long,float,double 取值范围
部分内容转自:java 彻底理解 byte char short int float long double 首先说byte: 这段是摘自jdk中 Byte.java中的源代码: /** * A co ...
- java 彻底理解 byte char short int float long double
遇到过很多关于 数值类型范围的问题了,在这做一个总结,我们可以从多方面理解不同数值类型的所能表示的数值范围 在这里我们只谈论 java中的数值类型 首先说byte: 这段是摘自jdk中 Byte.ja ...
- C#基础蛋疼到爆的Byte类型表数范围之网兜毛衣见解……
事实上写这篇对Byte类型表数范围的文章,真的是蛋疼+蛋疼+蛋疼,每每看到Byte表数范围这一块.都对-128如此的陌生与迷茫.操蛋的Byte,操蛋的人生-- 熊孩子出场:Byte 恶作剧结果:表数范 ...
- 详解计算机中的Byte、bit、字、字长、字节
最近突然有同事问我,关于计算机中的计量单位大B和小b的区别,以及KB到GB之间的换算问题,我当时觉得这问题简单,大B是 byte,小b是bit,但是想到他俩之间的换算时,一时有些想不起来具体是1Byt ...
- go语言:多个[]byte数组合并成一个[]byte
场景:在开发中,要将多个[]byte数组合并成一个[]byte,初步实现思路如下: 1.获取多个[]byte长度 2.构造一个二维码数组 3.循环将[]byte拷贝到二维数组中 package gst ...
- Android-Drawable、Bitmap、byte[]、资源文件相互转换
我们在Android的开发中,经常可以遇到图片的处理,当中,有很多是 Bitmap.Drawable.byte[]和资源文件它们直接相互转换. 今天就此总结一下: 1.资源文件转为Drawable 2 ...
- byte[] 转成图片方法
/// <summary> /// ImageData 的摘要说明 /// </summary> public class ImageData : IHttpHandler { ...
随机推荐
- vue props传值后watch事件未触发的问题
父组件传值,子组件监听,明明很简单的一个事情,硬是卡了许久(毕竟不是专业搞前端的,还是吃亏在学识浅陋).也和自己钻牛角尖有关,想自己解决问题. 早期我写过一篇vue组件传值的文章,传值方式是这样的: ...
- MyBatis错误:The server time zone value '?泄???????' is unrecognized or represents more t
原文地址:http://blog.csdn.net/oppo5630/article/details/52162783 解决java.sql.SQLException: The server time ...
- 20182332 实验一《Linux基础与Java开发环境》实验报告
20182332 实验一<Linux基础与Java开发环境>实验报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 盛国榕 学号:20182332 实验教师:王志强 ...
- 牛顿法与拟牛顿法(四) BFGS 算法
转自 https://blog.csdn.net/itplus/article/details/21897443
- html中如何获取元素在文档中的位置
html中如何获取元素在文档中的位置 一.总结 一句话总结: $("#elem").offset().top $("#elem").offset().left ...
- Sublime 添加∕删除右键菜单.bat
Sublime 添加∕删除右键菜单.bat @ECHO OFF & PUSHD %~DP0 & TITLE >NUL 2>&1 REG.exe query &quo ...
- linux安装后需要进行的一些基本设置
修改网络: 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后重启网络服务:systemctl restart network.servic ...
- linux Host key verification failed.错误
Host key verification failed. 1. ssh-keygen -R 你要访问的IP地址 2. ssh-keygen -R 108.61.163.242
- insmod内核模块时提示Failed to find the folder holding the modules怎么办?
答:笔者通过重新编译内核和根文件系统解决了此问题 (笔者使用的是openwrt系统) 分析: 1. ’Failed to find the folder holding the modules‘这句l ...
- Java FTP客户端开源类库 edtFTPj
edtFTPj/Free是免费的流行的Java FTP库,全球公司依靠edtFTPj /Free 为它们的Java应用程序添加FTP客户端功能. (收费的支持SFTP.FTPS的edtFTPj/PRO ...