poj1220 (高精度任意进制转换)

2014-11-23 20:10:31 · 作者: · 浏览: 8

高精度任意进制转换


代码是从discuss里找到的,据说是maigo神牛写的。

超精简!!

我自己第一写的时候,还把n进制先转成10进制,然后再从10进制转为m进制。。。

悲催的是写了好长滴,还没调对啊!!!

Code:

#include    
#include    
const int maxn = 1000;  
int  t[maxn], A[maxn];  
char str1[maxn], str2[maxn];  
int n, m;  
void solve()  
{  
    int i, len, k;  
    len = strlen(str1);  
    for(i=len; i>=0; --i) t[len-1-i] = str1[i] -(str1[i]<58   48: str1[i]<97   55: 61);  
    for(k=0; len;) {  
        for(i=len; i>=1; --i) {  
            t[i-1] +=t[i]%m*n;  
            t[i] /= m;  
        }  
        A[k++] = t[0] % m;  
        t[0] /=m;  
        while(len>0&&!t[len-1])  len--;  
    }  
    str2[k] =NULL;  
    for(i=0; i