题目意思
给你一串字符,如果当中1的个数为奇数就说明这个串具有奇数奇偶校验位,否则这说明这个串具有偶数奇偶校验位。现在e代表偶数,o代表奇数。让你输出相应的串。
解题思路
就是一道简单的水题,计算最后一位前的1的个数,如果最后为e就输出的串中1的数为偶数,否则就为奇数。
代码部分
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <math.h>
#define ll long long
using namespace std;
char a[100];
int main()
{
while(scanf("%s",a)&&a[0]!='#')
{
if(a[0]=='#')
break;
int sum=0;
int len=strlen(a);
for(int i=0;i<len-1;i++)
{
sum+=a[i]-'0';
printf("%c",a[i]);
}
if((sum%2==0&&a[len-1]=='e')||(sum%2==1&&a[len-1]=='o'))
{
printf("0\n");
}
else
{
printf("1\n");
}
}
return 0;
}