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

题目描述:

输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'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] !='\0')
    {
        count=0;
        deep=0;
        //printf("\n");
        //printf("\n%d\n",a[i]);
        int b=a[i];
        convert(b,2);
        printf("\n");
        i++;
    }
    }
    return 0;
}

 

posted @ 2013-07-17 11:16  Joilee  阅读(315)  评论(0编辑  收藏  举报