时间限制: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; }