hdu 2031 进制转换

来源:互联网 发布:音乐基础知初级书教材 编辑:程序博客网 时间:2024/06/06 02:43
//这是我写的,虽然逻辑有点乱,但测试都过了,却过不了OJ#include<iostream>using namespace std;int a[100];char b[7];int n,r;int change_s(int n,int r){    int count=0;    if(r>10)    {        b[0]='A';        for(int i=1;i<7;i++)        {            b[i]=b[i-1]+1;        }        while(n!=0)        {            a[count]=n%r;            n=n/r;            count++;        }        for(int j=count-1;j>=0;j--)        {            if(a[j]<10)                cout<<a[j];            else            {                for(int i=0;i<7;i++)                {                   if(a[j]-10==i)                    cout<<b[i];                }            }        }        cout<<endl;        return 0;    }    if(n<0)    {        n=-n;        while(n!=0)        {            a[count]=n%r;            n=n/r;            count++;        }        cout<<"-";        for(int j=count-1;j>=0;j--)        {            cout<<a[j];        }        cout<<endl;        return 0;    }        while(n!=0)        {            a[count]=n%r;            n=n/r;            count++;        }        for(int j=count-1;j>=0;j--)        {            cout<<a[j];        }        cout<<endl;    return 0;}int main(){    while(cin>>n>>r)    {        change_s(n,r);    }    return 0;}//借鉴前辈的代码#include<iostream>using namespace std;char a[100];int n,r,temp,len;int change(int n,int r){    int i=0;    if(n>0)    //考虑n为负数的情况        temp=n;    else        temp=-n;    while(temp)    {        a[i]=temp%r+'0';        if(a[i]-'9'>0) a[i]=a[i]-'9'+64;//判断存的是数字还是字母        temp/=r;        i++;    }    len=i;    return 0;}int main(){    int n,r;    while(cin>>n>>r)    {        len=0;//初始化        change(n,r);        if(n<0)            cout<<"-";        for(int i=len-1;i>=0;i--)        {            cout<<a[i];        }        cout<<endl;    }    return 0;}

0 0
原创粉丝点击