华中科技大学计算机上机,华中科技大学_2010___考研计算机_复试上机

1,奇偶校验

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

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

输出:可能有多组測试数据,对于每组数据,

对于字符串中的每个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

例子输入:3

3a

例子输出:10110011

10110011

01100001

总结:感觉还好,可是以下再贴出一份代码,网上找的,感觉很有意思,直接使用异或运算即可。

#include

#include

using namespace std;

void odd_verify(char a){

int num[8]={0,0,0,0,0,0,0,0};

int i=0,j=0;

while(a){

if(a%2 == 1) j++;

num[i++] = a%2;

a=a>>1;

}

if(j%2 != 1){

num[7] = 1;

}

for(j=7;j>0;j--){

cout<

}

cout<

}

int main(){

string str;

int i,len;

while(cin>>str){

len=str.length();

for(i=0;i

odd_verify(str[i]);

}

}

return 0;

}

#include

#include

int main()

{

char str[110];

while(~scanf("%s",&str))

{

for(int i=0;str[i];i++)

{

int num[8];

memset(num,0,sizeof(num));//注意memset所处的位置

int j=0;

while(str[i])

{

num[j++]=str[i]%2;

str[i]=str[i]/2;

}

num[7]=num[7]^num[6]^num[5]^num[4]^num[3]^num[2]^num[1]^num[0]^1;//异或运算符^

for(int j=7;j>=0;j--)

if(j==0)printf("%d

",num[j]);

else printf("%d",num[j]);

}

}

return 0;

}

2,加法器

题目描写叙述:实现一个加法器,使其可以输出a+b的值。

输入:输入包含两个数a和b,当中a和b的位数不超过1000位。

输出:可能有多组測试数据,对于每组数据,

输出a+b的值。

例子输入:2 6

10000000000000000000 10000000000000000000000000000000

例子输出:8

10000000000010000000000000000000

总结:写的不好,实现了。

#include

#include

using namespace std;

#define max_n 1020

int main(){

string str1,str2;

int i,j,s,jin;

int len1,len2;

while(cin>>str1 && cin>>str2){

int num1[max_n] = {0};

int num2[max_n] = {0};

int sum[max_n] = {0};

len1 = str1.length();

len2 = str2.length();

j=0;

for(i=len1-1;i>=0;i--){

num1[j++] = str1[i] - '0';

}

j=0;

for(i=len2-1;i>=0;i--){

num2[j++] = str2[i] - '0';

}

jin=0;

for(i=0;i

s=num1[i] + num2[i] + jin;

sum[i] = s % 10;

jin = s / 10;

}

for(i=max_n - 1;i>=0;i--){

if(i != 0){

if(sum[i] != 0){

for(j = i;j >= 0;j--){

cout<

}

break;

}

}else{

cout<

}

}

cout<

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值