HDU 2700
Parity
Time Limit: 2000/1000 MS(Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4334 Accepted Submission(s): 3264
Problem Description
A bit string hasodd parity if the number of 1's is odd. A bit string has even parity if thenumber of 1's is even.Zero is considered to be an even number, so a bit stringwith no 1's has even parity. Note that the number of
0's does not affect the parity of a bit string.
Input
The input consistsof one or more strings, each on a line by itself, followed by a line containingonly "#" that signals the end of the input. Each string contains 1–31bits followed by either a lowercase letter 'e' or a lowercase letter 'o'.
Output
Each line ofoutput must look just like the corresponding line of input, except that theletter at the end is replaced by the correct bit so that the entire bit stringhas even parity (if the letter was 'e') or odd parity (if the letter was 'o').
Sample Input
101e
010010o
1e
000e
110100101o
#
Sample Output
1010
0100101
11
0000
1101001010
题意简述
看字符串中1的个数,e结尾变成偶数,o结尾变成单数
题意分析
明白了就是水题
代码总览
#include<stdio.h> #include<string.h> int main() { //freopen("in.txt","r",stdin); int length,i,count; char str[101] ; while(scanf("%s",str) != EOF && str[0] != '#'){ count = 0; length = strlen(str); for(i = 0; i<length-1;i++){ if(str[i]=='1'){ count++; } } if(count%2==0 && str[length-1] == 'e'){ str[length-1]='0'; }else if(count%2!=0 && str[length-1] == 'e'){ str[length-1]='1'; }else if(count%2==0 && str[length-1] == 'o'){ str[length-1]='1'; }else if(count%2!=0 && str[length-1] == 'o'){ str[length-1]='0'; } for(i = 0; i<length;i++){ printf("%c",str[i]); if(i == length-1){ printf("\n"); } } } return 0; //fclose(stdin); }
谢谢您耐心的看完本文!
我是ACM小白,希望与诸君共勉!欢迎收听新浪微博:鹏威尔Will