Problem D
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 3 Accepted Submission(s) : 3
Its buttons will include the capital letters A through F in addition to the digits 0 through 9.
It will support bases 2 through 16.
Input
The input for your prototype program will consist of one base conversion per line. There will be three numbers per line. The first number will be the number in the base you are converting from. The second number is the base you are converting from. The third number is the base you are converting to. There will be one or more blanks surrounding (on either side of) the numbers. There are several lines of input and your program should continue to read until the end of file is reached.
Output
The output will only be the converted number as it would appear on the display of the calculator. The number should be right justified in the 7-digit display. If the number is to large to appear on the display, then print ``ERROR'' (without the quotes) right justified in the display.
Sample Input
1111000 2 10 1111000 2 16 2102101 3 10 2102101 3 15 12312 4 2 1A 15 2 1234567 10 16 ABCD 16 15
Sample Output
120 78 1765 7CA ERROR 11001 12D687 D071
using namespace std;
#include<stdio.h>
#include<string.h>
int main()
{
char a[69],d[69],f[69];
int b,c,s,n,i,j,b1,e,m,z;
while(cin>>a>>b>>c)
{
n=strlen(a);
if(a[n-1]>=65)s=a[n-1]-55;
else s=a[n-1]-48;
for(i=n-2,b1=1;i>=0;i--)//现将n进制的转换w为10进制
{
if(a[i]==' ')break;
b1*=b;
if(a[i]>=65&&a[i]<=70)
a[i]-=55;
else a[i]=a[i]-48;
s+=a[i]*b1;
}
// cout<<"PPPPPPPPPPPPPPP"<<s<<endl;
for(i=0;s!=0;i++) //再将10进制转换为m进制
{
e=s%c;
if(e>=10&&e<=15)
e+=55;
else e+=48;
d[i]=e;
// cout<<d[i];
s/=c;
}
m=i;
//for(j=0;j<i/2;j++)
//d[j]=d[i-j-1];
for(i=m-1,j=0;i>=0;i--,j++)
f[j]=d[i];
if(m>7)cout<<" ERROR"<<endl; //输出
else
{
for(i=0;i<7-m;i++)
cout<<' ';
for(i=0;i<m;i++)
cout<<f[i];
cout<<endl;
}
}
return
}
using namespace std;
#include<stdio.h>
int main()
{
int a,n;
cin>>n;
while(n--)
{
cin>>a;
printf("十进制是%d\n",a);
printf("八进制是%o\n",a);
printf("十六进制是%x\n",a);
}
return 0;
}