问题标题: 酷町堂:2470 转换进制2

0
0

0
已采纳
徐云皓
徐云皓
新手天翼
新手天翼

    cin>>a;
    k=hh(a,0,8);
    sg(k,2);

1
完颜傲伦
完颜傲伦
资深守护
资深守护

法1   以十进制为桥梁,8->10->2

int bast(long long n,long long t,int p)
{
    if(n==0)
        return 0;
    long long x=pow(p,t);
    return (n%10)*x+bast(n/10,t+1,p);
} 

这是2->10; n是原数,t写0,p写8

定义go函数(n和p,longlong类型)
{
    if(n==0)return;
    go(n/p,p);
    if(n%p>=10)
        cout<<char(n%p-10+'A');
    else
        cout<<n%p;
}

n是十进制数,p是2

主函数

long long a,k;
    cin>>a;
    k=bast(a,0,8);
    go(k,2); 

自己理解

法2略,即 2—>8 直接

完颜傲伦在2018-07-06 14:52:37追加了内容

求采纳!!!

0
0
我要回答