poj 1220 NUMBER BASE CONVERSION

高精度的进制转换
#include<stdio.h>
#include
<string.h>

int n, ori, to, t[1000], tonum[1000];
char str[1000], num[1000];

int main ()
{
    scanf(
"%d"&n);
    
while (n--)
    {
        scanf(
"%d%d%s"&ori, &to, str);
        
int i, j= 0, len= strlen(str), k= len;
        
for (i=len-10 <= i; i--)
            t[len
-1-i]= str[i]-58 > str[i] ? '0' : 91 > str[i] ? 'A'-10 : 'a'-36 );
        
while( k )
        {
            
for ( i = k-1 ; i > 0; i-- )
            {
                t[i
-1]+=t[i]%to*ori;
                t[i]
/=to;
            }
            tonum[j
++]=t[0]%to;
            t[
0]/=to;
            
while0 < k && !t[k-1]) k--;
        }
        
for ( num[j] = i = 0 ; i < j ; i++ )
            num[j
-1-i]=tonum[i]+10 > tonum[i] ? '0' : 36 > tonum[i] ? 'A'-10 :'a'-36);
        printf(
"%d %s\n%d %s\n\n", ori, str, to, num);
    }
    
return 0;
}

posted on 2011-08-12 09:48 purplest 阅读(205) 评论(0)  编辑 收藏 引用 所属分类: 进制转换高精度


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿

随笔分类(70)

随笔档案(68)

ACMer

搜索

最新随笔

最新评论