题目1197:奇偶校验
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2132
解决:833
-
题目描述:
-
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。
-
输入:
-
输入包括一个字符串,字符串长度不超过100。
-
输出:
-
可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
-
样例输入:
-
3 3a
-
样例输出:
-
10110011 10110011 01100001
********************************************************************
#include<iostream> #include<string> using namespace std; int main() { string s; int count; int n; int bit[7];//ascii只有7位 int j; while(cin>>s) { for(int i=0;i!=s.size();i++) { count=j=0; n=s[i]; while(n!=0)//将一个整型数转换成二进制数 { bit[j]=n%2; if(bit[j]==1)//计算有多少个 1; count+=1; n=n/2; j+=1; } while(j!=7)//共7位,空出的高位补0 { bit[j]=0; j+=1; } if(count%2==0)//偶数个 1 { cout<<"1"; for(int j=0;j!=7;j++) cout<<bit[6-j]; cout<<endl; } else//奇数个 1 { cout<<"0"; for(int j=0;j!=7;j++) cout<<bit[6-j]; cout<<endl; } } } return 0; }