NOI:8214 正整数的任意进制转换

题目链接

NOI:8214 正整数的任意进制转换_第1张图片

题解:高精度计算,直接使用进制q取余即可,无需转换成10进制

#include 
#include 
#include 
#include 
#include 
using namespace std;
char x[10000];
int y[10000],z[10000];
int a,b,c,e,d,n;
int chu()//除法
{
    int yu1=0,yu2=0;
    for(int i=0;i='0'&&x[i]<='9')//转换成int存入y
                y[i]=x[i]-'0';
            else
                y[i]=x[i]-'A'+10;
        }
        scanf("%d",&b);//q进制
        c=strlen(x);
        for(e=0,d=1;;e++,d=1){
            z[e]=chu();
            for(int i=0;i=0){//逆序输出
            if(z[e]>=0&&z[e]<=9)
                printf("%d",z[e]);
            else
                printf("%c",z[e]-10+'A');
            e--;
        }
        printf("\n");
    }
    return 0;
}

你可能感兴趣的:(NOI)