1036 - 字符串的奇偶性
我们把只有0和1组成的字符串叫做比特字符串。如果比特字符串中1的个数为奇数,则称这个比特字符串是奇性的。如果比特字符串中1的个数为偶数,则称这个比特字符串是偶性的。
注意:
(1)0是偶数,所以不包含1的比特字符串是偶性的。
(2)0的个数不影响比特字符串的奇偶性。
Input
输入包含多组测试数据。每组数据由1~31个0、1组成,最后跟一个小写字母e或o,e表示此比特字符串应为偶性,o表示此比特字符串应为奇性。
当输入#时,表示输入结束。
Output
每组输入对应一个输出,你应该将最后的字母替换成0或1,使得此比特字符串符合输入时确定的奇偶性。
Examples
Input
101e 010010o 1e 000e 110100101o #
Output
1010 0100101 11 0000 1101001010
Solution C
#include<stdio.h> #include<string.h> int main() { int i,k,l; char a[35]; while(gets(a)) { k=0; if(!strcmp(a,"#")) break; l=strlen(a); for(i=0;i<l;i++) if(a[i]=='1') k++; if(k%2==0) { if(a[l-1]=='e') a[l-1]='0'; else a[l-1]='1'; } else { if(a[l-1]=='e') a[l-1]='1'; else a[l-1]='0'; } printf("%s\n",a); } return 0; }
Solution C++
#include<stdio.h> #include<string.h> int main() { int i,k,l; char a[35]; while(gets(a)) { k=0; if(!strcmp(a,"#")) break; l=strlen(a); for(i=0;i<l;i++) if(a[i]=='1') k++; if(k%2==0) { if(a[l-1]=='e') a[l-1]='0'; else a[l-1]='1'; } else { if(a[l-1]=='e') a[l-1]='1'; else a[l-1]='0'; } printf("%s\n",a); } return 0; }