n进制转m进制,虽然知道短除法但是还是不太理解,看了代码理解一些了:

记住这个就好了:

for(int k=0;l; ){
for(int i=l ; i>=1 ; i--){
num[i - 1] += num[i] % m * n;
num [i] / =m;
}
num1[k++]=num[0] % m;
num[0] /= m;
while( l > 0&& num[ l - 1]==0) l--;
}

AC代码如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<map>
#include<iostream>
using namespace std;
const int maxn=1200;
map<char,int> no;
map<int,char> output;
int num[maxn],num1[maxn];
char s[maxn];
int main(){
for(int i='0',j=0;i<='9';i++,j++)
no[i]=j,output[j]=i;
for(int i='A',j=10;i<='Z';i++,j++)
no[i]=j,output[j]=i;
for(int i='a',j=36;i<='z';i++,j++){
no[i]=j,output[j]=i;
}
int n,m,k,t;
cin>>t;
while(t--){
cin>>n>>m;
scanf("%s",s);
int l=strlen(s);
for(int i=0;i<l;i++){
num[l-i-1]=no[s[i]];
}
for(k=0;l;){
for(int i=l;i>=1;i--){
num[i-1]+=num[i]%m*n;
num[i]/=m;
}
num1[k++]=num[0]%m;
num[0]/=m;
while(l>0&&num[l-1]==0)l--;
}
printf("%d ",n);
printf("%s\n",s);
printf("%d ",m);
for(int i=k-1;i>=0;i--)
printf("%c",output[num1[i]]);
cout<<"\n"<<endl;
} }

  

POJ 1220 高精度/进制转换的更多相关文章

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

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

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

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

  3. java高精度进制转换

    POJ1131   由于本题只有小数部分(整数部分均为0),故在进制转换的之后只能自己手写转换方法了.   8进制转换10进制的方法为,以0.75为例,应是7*8^-1 + 5*8^-2.所以呢,可以 ...

  4. poj3708:函数式化简+高精度进制转换+同余方程组

    题目大意 给定一个函数 找出满足条件   等于 k 的最小的x m,k,d已知 其中 m,k 很大需要使用高精度存储 思路: 对 函数f(m)进行化简 ,令t=ceil( log(d,m) ) 可以得 ...

  5. 高精度的N进制转换模板(转K神)

    /* 高精度进制转换 把oldBase 进制的数转化为newBase 进制的数输出. 调用方法,输入str, oldBase newBase. change(); solve(); output(); ...

  6. POJ 1220 大数字的进制转换,偷下懒,用java

    题意为进制转换,Java的大数类就像是作弊 import java.math.BigInteger; import java.util.Scanner; public class Main { pub ...

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

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

  8. POJ 2305:Basic remains 进制转换

    Basic remains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5221   Accepted: 2203 Des ...

  9. poj 2635 千进制

    转自:http://www.cnblogs.com/kuangbin/archive/2012/04/01/2429463.html 大致题意: 给定一个大数K,K是两个大素数的乘积的值. 再给定一个 ...

随机推荐

  1. 经典SQL语句(转载)

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  2. Windows vs Linux:\r\n 与 \r

    Linux 下文本文件的换行符为 \n Windows 下文本文件的换行符为 \r\n,占两个字节: \r:归位键(CR),ascii 码为 13 \n:换行键(LF),ascii 码位 10 也即单 ...

  3. [基本操作] kd 树

    概念就不说了吧,网上教程满天飞 学了半天才知道,kd 树实质上只干了两件事情: 1.快速定位一个点 / 矩形 2.有理有据地优化暴力 第一点大概是可以来做二维平面上给点/矩形打标记的问题 第二点大概是 ...

  4. HttpServletRequest获取请求得URL信息

    request对象中包含的是请求信息,当我们在浏览器地址栏上输入:http://localhost:8080/Example/AServlet?username=zhangsan,这段地址也会作为请求 ...

  5. Java String Split Method

    Java String.split() method 有如下几种特殊情况: 1. 分隔符出现在首尾 public static void main(String args[]) { String St ...

  6. LeetCode Max Consecutive Ones II

    原题链接在这里:https://leetcode.com/problems/max-consecutive-ones-ii/ 题目: Given a binary array, find the ma ...

  7. JSplitPane的简单实现

    import java.awt.Color; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.J ...

  8. 让人蛋疼的“Oracle.DataAccess.dll”

    项目介绍:为前台网站提供rest接口来操作erp相关数据 涉及db:oracle11 技术方案:因为erp是用remoting来调用,我想rest实现部分调用remoting来操作减少耦合,当然性能上 ...

  9. 使用.NET中的XML注释(二) -- 创建帮助文档入门篇

    一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. 二.背景 要生成帮助文 ...

  10. Apache Htpasswd生成和验证密码

    Assuming you create the password using the following command and "myPassword" as the passw ...