普通的做法,大数除小数。

复杂度o( log(n)*log(n) ),其实就是位数的平方。

NUMBER BASE CONVERSION
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 4913   Accepted: 2246

Description

Write a program to convert numbers in one base to numbers in a second base. There are 62 different digits:
{ 0-9,A-Z,a-z }

HINT: If you make a sequence of base conversions using the output of
one conversion as the input to the next, when you get back to the
original base, you should get the original number.

Input

The
first line of input contains a single positive integer. This is the
number of lines that follow. Each of the following lines will have a
(decimal) input base followed by a (decimal) output base followed by a
number expressed in the input base. Both the input base and the output
base will be in the range from 2 to 62. That is (in decimal) A = 10, B =
11, ..., Z = 35, a = 36, b = 37, ..., z = 61 (0-9 have their usual
meanings).

Output

The
output of the program should consist of three lines of output for each
base conversion performed. The first line should be the input base in
decimal followed by a space then the input number (as given expressed in
the input base). The second output line should be the output base
followed by a space then the input number (as expressed in the output
base). The third output line is blank.

Sample Input

8
62 2 abcdefghiz
10 16 1234567890123456789012345678901234567890
16 35 3A0C92075C0DBF3B8ACBC5F96CE3F0AD2
35 23 333YMHOUE8JPLT7OX6K9FYCQ8A
23 49 946B9AA02MI37E3D3MMJ4G7BL2F05
49 61 1VbDkSIMJL3JjRgAdlUfcaWj
61 5 dl9MDSWqwHjDnToKcsWE1S
5 10 42104444441001414401221302402201233340311104212022133030

Sample Output

62 abcdefghiz
2 11011100000100010111110010010110011111001001100011010010001 10 1234567890123456789012345678901234567890
16 3A0C92075C0DBF3B8ACBC5F96CE3F0AD2 16 3A0C92075C0DBF3B8ACBC5F96CE3F0AD2
35 333YMHOUE8JPLT7OX6K9FYCQ8A
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
#include <math.h>
using namespace std; char str[];
int num[];
int ans[]; int chg(char c)
{
if( c>=''&&c<='' ) return c-'';
if( c>='A'&&c<='Z' ) return c-'A'+;
if( c>='a'&&c<='z' ) return c-'a'+;
return -;
} char unchg(int x)
{
if(x>=&&x<=) return x+'';
if(x>=&&x<=) return 'A'+x-;
else return 'a'+x-;
} int main()
{
int T;
cin>>T;
while(T--)
{
int from,to;
scanf("%d%d",&from,&to);
scanf("%s",str);
int len=strlen(str);
for(int i=;i<len;i++)
{
num[i] = chg(str[i]);
}
int cnt=;
int wei=;
while( cnt < len )
{
//然后做一次除法
for(int i=cnt;i<len;i++)
{
num[ i+ ] += (num[i]%to)*from;
num[ i ] /= to;
}
ans[ wei++ ] = num[len]/from;
num[len]=;
for(int i=cnt;i<len;i++)
{
if(num[i]==) cnt++;
else break;
}
}
printf("%d %s\n",from,str);
printf("%d ",to);
for(int i=wei-;i>=;i--)
{
printf("%c",unchg(ans[i]));
}
printf("\n\n");
}
return ;
}

大数进制转换 poj1220的更多相关文章

  1. POJ1220(大数进制转换)

    NUMBER BASE CONVERSION Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4652   Accepted: ...

  2. hdu-1877(大数+进制转换)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1877 思路:注意考虑0,0的情况. #include<iostream> #include ...

  3. 1030 大数进制转换(51Nod + JAVA)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1030 题目: 代码实现如下: import java.mat ...

  4. poj1220(短除法实现任意进制转换)

    题目链接:https://vjudge.net/problem/POJ-1220 题意:给定a进制的大数s,将其转换为b进制.其中2<=a,b<=62. 题意:一般进制转换是以10进制为中 ...

  5. poj1220:高精度进制转换模板题

    今天撸3708  一直奇怪的re 就先放下了,写这个题的过程中学习了一个高精度进制转换,用这个模板写了1220 记录一下: #include <iostream> #include < ...

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

    http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...

  7. 高精度进制转换(poj1220)

    常规短除法原理 高精度进制转换是对于特别大的数字来说的,当数字特别大时,难以进行除法和取余的操作,此时通过字符串模拟的办法可以解决. #include <iostream> #includ ...

  8. poj2305-Basic remains(进制转换 + 大整数取模)

    进制转换 + 大整数取模一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串-&g ...

  9. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

随机推荐

  1. 容器窗口 <QTabWidget>

    ////////////////////////////////////////// #include "test9_2a.h" #include "M_win.h&qu ...

  2. 一个人的安全部之ELK接收Paloalto日志并用钉钉告警

    起因 通报漏洞后,开发未能及时修复漏洞,导致被攻击,领导说我发现被攻击的时间晚了,由于一个人安全部精力有限未能及时看IPS告警,于是做了个钉钉告警. 本人环境介绍 ubuntu 14.04 pytho ...

  3. MySql中文乱码问题(3)

    MySql的client是在dos界面上,然而dos界面默认的字符集编码方式是:GBK (1).MySql字符转换原理图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...

  4. Rails 状态码

    Response Class HTTP StatusCode Symbol Informational 100 :continue Success 200 :ok Redirection 300 :m ...

  5. HTML to PDF pechkin

    1. Goto Nuget 下载 Pechkin 控件 2. 创建需要打印的的PDF controller 和 Action, 这里会调用其他页面的内容进行打印. public ActionResul ...

  6. 01-1制作U盘启动盘--大白菜超级U盘启动盘制作工具

    使用大白菜超级U盘启动盘制作工具制作U盘启动盘  工具/材料: 电脑.U盘.浏览器.大白菜u盘启动制作工具. 操作方法: 打开浏览器,输入大白菜,点击普通下载进行大白菜u盘启动制作工具下载: 或者通过 ...

  7. 【整理】mysql中information_schema.tables字段说明

    [整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50|  分类: 默认分类|举报|字号 订阅     下载LOFTER我的照片书  | ...

  8. ASP.NET CORE RAZOR :向 Razor 页面添加验证

    https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/validation 本部分中向 Movie 模型添加了验证逻辑. ...

  9. vi/vim复制粘贴命

    1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下:     y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用:   ...

  10. javascript与as3交互

    文章都是发布在github再转到这边的,这边格式可能会乱掉.博客地址:benqy.com 写在前面的废话 公司首页的flash广告,都是由第三方制作的,脚本和flash文件都是由各个广告公司独立制作, ...