【九度OJ】题目1197:奇偶校验 解题报告
2017-03-19 18:29
281 查看
【九度OJ】题目1197:奇偶校验 解题报告
标签(空格分隔): 九度OJhttp://ac.jobdu.com/problem.php?pid=1197
题目描述:
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如’3’,输出:10110011)。输入:
输入包括一个字符串,字符串长度不超过100。输出:
可能有多组测试数据,对于每组数据,对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
样例输入:
3 3a
样例输出:
10110011 10110011 01100001
Ways
状态不好的时候就是老出错。首先明白题意,对字符的ASCii进行奇校验。首先转成对应的二进制,然后判断1的个数,如果是奇数把首位字符改成0即可。这个可以使用BigInteger类直接转成二进制再处理。但我用C++解决的。
这几个地方出错了:
1.
int answer[10];memset(answer, 0, sizeof(answer));应该放到循环体里。
2.temp别忘了处理,p别忘了++
3.判断一个数字的尾数可以直接
&1
#include<stdio.h> #include<string.h> int main() { char a[110]; while(gets(a)!=NULL) { int len = strlen(a); for (int i = 0; i < len; i++) { int answer[10]; memset(answer, 0, sizeof(answer)); int temp = a[i]; int p = 0; int count = 0; while (temp) { answer[p++] = temp & 1; if ((temp & 1) == 1) { count++; } temp /= 2; } if ((count & 1) == 1) { answer[7] = 0; } else { answer[7] = 1; } for (int j = 7; j >= 0; j--) { printf("%d", answer[j]); } printf("\n"); } } return 0; }
Date
2017 年 3 月 19 日相关文章推荐
- 【九度OJ】题目1182:统计单词 解题报告
- 【九度OJ】题目1194:八进制 解题报告
- 【九度OJ】题目1431:Sort 解题报告
- 【九度OJ】题目1441:人见人爱 A ^ B 解题报告
- 【九度OJ】题目1137:浮点数加法 解题报告
- 【九度OJ】题目1170:找最小数 解题报告
- 【九度OJ】题目1202:排序 解题报告
- 【九度OJ】题目1069:查找学生信息 解题报告
- 【九度OJ】题目1113:二叉树 解题报告
- 【九度OJ】题目1074:对称平方数 解题报告
- 【九度OJ】题目1207:质因数的个数 解题报告
- 【九度OJ】题目1171:C翻转 解题报告
- 【九度OJ】题目1206:字符串连接 解题报告
- 九度OJ题目1164:旋转矩阵解题报告
- 题目1197:奇偶校验(九度OJ)
- 【九度OJ】题目1052:找x 解题报告
- 【九度OJ】题目1056:最大公约数 解题报告
- 【九度OJ】题目1438:最小公倍数 解题报告
- 【九度OJ】题目1190:大整数排序 解题报告
- 【九度OJ】题目1024:畅通工程 解题报告