您的位置:首页 > 其它

【清澄】A1012. 进制转换3

2013-12-06 16:42 267 查看
将10进制a转化为p进制。

0<=a<=2147483647,2<=p<=36.

2147483647=2^31-1,它是第8个梅森素数哦!

所以要用 long long。

连除取余法。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;

char ans[100];

int main()
{
    long long n;
    int p;
    while(scanf("%I64d%d",&n,&p)!=EOF)
    {
        int r=0;
        if(n==0)
        {
            printf("0\n");
            continue;
        }
        while(n)
        {
            int a=n%p;
            if(a>=0 && a<=9)
                ans[r++]='0'+a;
            else
            {
                ans[r++]=a-10+'A';
            }
            n=n/p;
        }
        for(int i=r-1;i>=0;i--)
            printf("%c",ans[i]);
        printf("\n");
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: