备战考研算法笔记(二) 奇偶校验

题目描述:

输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。

输入:

输入包括一个字符串,字符串长度不超过100。

输出:

可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

样例输入:
3
3a
样例输出:
10110011
10110011
01100001
// OJ.cpp : 定义控制台应用程序的入口点。
//

#include "stdio.h"
int count=0;
int deep=0;
void convert(int num ,int mode)
{
  if(num/mode==0){//如果已经到了最高位

      if(num%mode==1) count++;//判断最高位是否为1

      if(deep<7)
       {//看是否需要修改最高位
            if (count%2==0) printf("1");
            else {printf("0");}
        while(deep<=5)//输出多于位数
        {
         printf("0");
         deep++;
        }
        printf("%d",num%mode);//输出最高位
       }
      else{if (count==0) printf("1");
            else {printf("0");}}
    
         
      return;}
  else 
   {
     deep++;//看位数
     if(num%mode==1)count++;//判断是0还是1
     convert(num/mode,mode);
     printf("%d",num%mode);//输出
    
   }
}

int main()
{
    
    char  a[101];
    while(scanf("%s", a)==1)
    {
        int i=0;
    while(a[i] !='')
    {
        count=0;
        deep=0;
        //printf("
");
        //printf("
%d
",a[i]);
        int b=a[i];
        convert(b,2);
        printf("
");
        i++;
    }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/ligen/p/3195394.html