Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

2798二进制转16进制为什么通不过。

Posted by zhoujunperking at 2008-09-13 10:33:56
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int n,i,len,k=0,head,j=0;
char str[10004],outStr[5000];
void change(char * str,int k);
int main()
{


	cin>>n;
	cin.get();
	while(n--)
	{
		i=1003;
		while(i)
		{
			str[i]='0';
			i--;
		}
		str[0]='0';
		cin>>str;
		len=strlen(str);
		reverse(str,str+len);
		str[len]='0';
		for(k=0;k<len;k+=4)
		{
			change(str,k);
		}
		for(k=j-1;k>=0;k--)
			cout<<outStr[k];
		cout<<endl;
		j=0;
	}
	return 0;
}
void change(char * str,int k)
{
	int temp;
	temp=1*(str[k]-'0')+2*(str[k+1]-'0')+4*(str[k+2]-'0')+8*(str[k+3]-'0');
	if(temp<10)
	{
		outStr[j]=temp+'0';
	}
	else
	{
		switch(temp)
		{
		case 10:
			outStr[j]='A';
			break;
		case 11:
			outStr[j]='B';
			break;
		case 12:
			outStr[j]='C';
			break;
		case 13:
			outStr[j]='D';
			break;
		case 14:
			outStr[j]='E';
			break;
		case 15:
			outStr[j]='F';
			break;
		}
	}
	j++;

}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator