华中科技大学_2010___考研计算机_复试上机
2014-10-30 19:18
453 查看
1,奇偶校验
题目描写叙述:
输入一个字符串,然后对每一个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。
输入:
输入包含一个字符串,字符串长度不超过100。
输出:
可能有多组測试数据,对于每组数据,
对于字符串中的每个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
例子输入:
例子输出:
总结:感觉还好,可是以下再贴出一份代码,网上找的,感觉很有意思,直接使用异或运算即可。
2,加法器
题目描写叙述:
实现一个加法器,使其可以输出a+b的值。
输入:
输入包含两个数a和b,当中a和b的位数不超过1000位。
输出:
可能有多组測试数据,对于每组数据,
输出a+b的值。
例子输入:
例子输出:
总结:写的不好,实现了。
题目描写叙述:
输入一个字符串,然后对每一个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。
输入:
输入包含一个字符串,字符串长度不超过100。
输出:
可能有多组測试数据,对于每组数据,
对于字符串中的每个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
例子输入:
3 3a
例子输出:
10110011 10110011 01100001
总结:感觉还好,可是以下再贴出一份代码,网上找的,感觉很有意思,直接使用异或运算即可。
#include<iostream> #include<string> 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<<num[j]; } cout<<num[0]<<endl; } int main(){ string str; int i,len; while(cin>>str){ len=str.length(); for(i=0;i<len;i++){ odd_verify(str[i]); } } return 0; }
#include<stdio.h> #include<string.h> 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\n",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<iostream> #include<string> 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<max_n;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<<sum[j]; } break; } }else{ cout<<sum[0]; } } cout<<endl; } return 0; }
相关文章推荐
- 二叉排序树——华中科技大学计算机历年考研复试上机题
- 华中科技大学_2008___考研计算机_复试上机
- 二叉查找树(华中科技大学计算机考研复试上机题)
- 华中科技大学_2006保研___考研计算机_复试上机
- 华中科技大学计算机历年考研复试上机题
- 2014北邮计算机考研复试上机题解(上午+下午)
- 后缀子串排序(后缀数组) - 上海交通大学计算机历年考研复试上机题
- 2014年天勤计算机考研复试上机练习赛(2):世界杯来了
- 2013北邮计算机考研复试上机题解
- 2014北邮计算机考研复试上机题解(上午+下午)
- 2012北邮计算机考研复试上机题解
- 北邮2018计算机院考研复试上机题解+结果统计
- 2015北邮计算机考研复试上机题解
- 2016北邮计算机考研复试上机题解
- 北京航空航天大学计算机系考研复试上机真题及答案---2014
- 浙江大学2005年计算机考研上机复试
- 2010北邮复试上机网研题目C
- 华科10年保送生计算机考研复试机试
- 北航2006年计算机复试上机
- 北京邮电大学2010年计算机方向复试上机题 解题报告