1 条题解
-
0
C :
#include<stdio.h> #include<string.h> #include<math.h> void change(char * a,int b) { int i=0; while(b!=0) { a[i]=(int)b%2+48; b=(int)b/2; i++; } a[i]='\0'; } int main() { char c[110]; int i,count,b,j; char a[50]={0}; while(scanf("%s",c)!=EOF) { count=0; j=0; while(c[j]) { count=0; b=(int)c[j]; change(a,b); for(i=0;a[i];i++) { if(a[i]=='1') count++; } if(i<7) { a[i]='0'; i++; } if((int)count%2==1) a[i]='0'; else a[i]='1'; while(i>=0) { printf("%c",a[i]); i--; } printf("\n"); i=0; j++; } } return 0; }
C++ :
#include <stdio.h> int main() { char a[100]; int i,j,k,b[8]; int asc,sum; while(scanf("%s",&a)!=EOF) { for(i=0;a[i]!='\0';i++) { asc=(int) a[i]; sum=0; //sum清零 for(k=7;k>0;k--) { b[k]=asc%2; if(b[k]==1) sum++; //统计a[i](二进制)"1" 的个数 asc/=2; } if(sum%2==0) b[0]=1; //校验位为b[0] else b[0]=0; for(j=0;j<8;j++) printf("%d",b[j]); printf("\n"); } } return 0; }
- 1
信息
- ID
- 2086
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者