将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;
}