华科机考:奇偶校验

时间限制:1秒   空间限制:32768K  

题目描述

输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。

输入描述: 输入包括一个字符串,字符串长度不超过100。

输出描述: 可能有多组测试数据,对于每组数据, 对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

输入例子: 3 3a

输出例子: 10110011

              10110011

              01100001

思路:先将这个字符转换成int,然后化成二进制,高位不足就补0,最后一位看情况补0或是1

代码:

#include <iostream>
#include <string.h>
using namespace std;


int main(){
   string str;
   int a[8];
   int num;
   int j,countl;
   while(cin>>str){
   for(int i=0;i<str.size();i++){
    memset(a,0,sizeof(a));
    j=0;
    countl=0;
    num=int(str[i]);
    while(num){
     a[j]=num%2;
     if(num%2==1)
      countl++;
     num=num/2;
     j++;
    }
    if(countl%2==0)
     a[7]=1;
    else
     a[7]=0;
    for(int j=7;j>=0;j--)
    cout<<a[j];
    cout<<endl;
   }
   }
   return 0;
}
原文地址:https://www.cnblogs.com/mlgjb/p/6667659.html