Start: Mar, 06, 2018 09:46:00
计算机161 算法分析与设计 第一次实验课作业(吴银杰、张凯庆)
End: Mar, 10, 2018 10:00:00
Time elapsed:
Time remaining:

Problem_ID: E
Result: Accepted
Time: 4ms
Memory: 1092kB
Author: Dew
In contest: 1141

#include<stdio.h>
#include<string.h>
int change(char c){
	if(c>='0'&&c<='9'){
		return c-'0';
	}
	else{
		return c-'a'+10;
	}
}
char Change(int d){
	if(d>=0&&d<=9){
		return '0'+d;
	}
	else{
		return 'a'+d-10;
	}
}
char str32b[32]="";
void erjinzhi(int n){
	for(int j=0;j<32;j++){
		str32b[j]='0';
	}
	int a=1;
	while(n!=0){
		str32b[32-a]=n%2==1?'1':'0';
		n=n/2;
		a++;
	}
}
int main(void){
	int t;
	scanf("%d",&t); 
	while(t--){
		char str[8];
		getchar();
		scanf("%s",str);
		int m,k;
		scanf("%d",&m);
		scanf("%d",&k);
		char str32a[32]="";
		int record=0;
		for(int i=0;i<8;i++){
			erjinzhi(change(str[i]));
			for(int j=28;j<32;j++){
				str32a[record++]=str32b[j];
			}
		}
		erjinzhi(k);
		for(int i=0;i<m;i++){
			str32a[i]=str32b[32-m+i];
		}
		for(int i=0;i<32;i=i+4){
			int sum=0;
			for(int j=0;j<4;j++){
				sum=sum*2;
				sum=sum+str32a[i+j]-'0';
			}
			printf("%c",Change(sum));
		}
		printf("\n");
	} 
	return 0;
}