Start: Jan, 08, 2018 19:10:00
2017年秋季学期程序设计基础(C语言)期末考试
End: Jan, 08, 2018 21:40:00
Time elapsed:
Time remaining:

Problem_ID: H
Result: Accepted
Time: 8ms
Memory: 1288kB
In contest: 1139

#include<stdio.h>
#include<math.h>

int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		char a[10];
		int i,j,c,b[100]={0},cf[40]={0};
		scanf("%s",&a);
	    for(i=0;i<8;++i)
		{
			double sum=0;
			if(a[i]>='0'&&a[i]<='9')sum=sum+(a[i]-'0') ;
			else sum=sum+(a[i]-87);
				while(sum>0)
				{
					int l=4*i+3;
					sum=sum-1;
					b[4*i+3]=b[4*i+3]+1;
					while(b[l]>1)
					{
						b[l]=0;
						b[l-1]=b[l-1]+1;
						l=l-1;
					}
				}
		}
		int n,k;
		scanf("%d",&n);
		scanf("%d",&k);
		while(k>0)
		{
			for(i=0;i<33;++i)
			{
				if(pow(2.0,i)>k)
				{
					k=k-pow(2.0,i-1);
					cf[i-1]=1;
					break;
				}
			}
		}
		
		for(i=0;i<n;++i)
		{
			b[i]=cf[n-1-i];
		}
		for(i=0;i<8;++i)
		{
			double sum2=0;
			for(j=4*i;j<=4*i+3;++j)
			{
			     sum2=sum2+pow(2.0,(4*i+3-j))*b[j];
			}
			if(sum2>=0&&sum2<=9)printf("%c",(char)(sum2+'0'));
			else printf("%c",(char)(sum2+87));
			if(i==7)printf("\n");
		}


	}
	return 0;
}