http://poj.org/problem?id=1220

题意:进制转换,把a进制转换为b进制。

如果数据不大的话,那么这个题还是很简单的,但这个题就是数据范围太大,所以这里可以采用短除法来做。

关于短除法,就是把每一位(这里指的每一位是指个位十位之类的)除以要转换的进制的余数在乘以当前进制的值加到下一位去,当前位的值就为商,然后这样一直进行到最后一位(也就是个位)个位在对所须转换的进制在取模,那么这个模就是转换后的结果。多次重复,直到最后一位为0,从后往前看就是答案。

举个例子:50,要从十进制转换为二进制。

十位是5,个位是0,那么首先5/2商为2,余1

下一步就是1*10+0=10,然后个位就变成了10,然后10/2=5余0,0就是结果的个位,

然后下一步就是对25进行操作

2/2商1余0,那么十位就是1,个位就是0*10+5=5.

5/2商2余1,那么结果的十位就是1。

然后对12进行操作,十位是1,1/2商0余1,那么十位就为0了。

个位就是1*10+2=12.12/2商6余0,结果的百位就是0.

因为十位是0,所以只对个位进行操作了,6/2商3余0,千为就是0

3/2商1余1,万位为1.

1/2商0余1,十万位为1,所以50转换为二进制就是110010

 #include <stdio.h>
#include <string.h>
#define l 600 int a,b,ans[l],tmp[l];
char c[l]; int main()
{
int n,k;
scanf("%d",&n);
while(n--)
{
memset(tmp,,sizeof(tmp));
memset(ans,,sizeof(ans));
memset(c,,sizeof(c));
scanf("%d%d%s",&a,&b,c);
int len=strlen(c);
for(int i=,m=len-;i<len;i++,m--){ //这里要注意,要把最低位放在tmp[0],因为始终是取最低位的余数为答案的。
if(c[m]>='A'&&c[m]<='Z'){
tmp[i]=c[m]-'A'+;
continue;
}
if(c[m]>='a'&&c[m]<='z'){
tmp[i]=c[m]-'a'+;
continue;
}
else {
tmp[i]=c[m]-'';
}
}
for(k=;len;){
for(int i=len-;i;i--) //这就是短除法。
{
tmp[i-]+=tmp[i]%b*a;
tmp[i]/=b;
}
ans[k++]=tmp[]%b;
tmp[]/=b;
for(;len>&&!tmp[len-];len--);
}
printf("%d %s\n%d ",a,c,b);
for(int i=k-;i>=;i--) //输出答案,逆序输出
{
if(ans[i]>=&&ans[i]<){
printf("%c",ans[i]-+'A');
continue;
}
if(ans[i]>=){
printf("%c",ans[i]-+'a');
}
else printf("%d",ans[i]);
}
printf("\n\n");
}
return ;
}

poj 1220(短除法)的更多相关文章

  1. POJ 1220 NUMBER BASE CONVERSION(较复杂的进制转换)

    题目链接 题意 : 给你一个a进制的数串s,让你转化成b进制的输出. A = 10, B = 11, ..., Z = 35, a = 36, b = 37, ..., z = 61,0到9还是原来的 ...

  2. poj 1220 NUMBER BASE CONVERSION(短除法进制转换)

    题目连接:1220 NUMBER BASE CONVERSION 题目大意:给出两个进制oldBase 和newBase, 以及以oldBase进制存在的数.要求将这个oldBase进制的数转换成ne ...

  3. Poj(1220),hash

    题目链接:http://poj.org/problem?id=1200 这个题,我真是无限MLE,RE,WA,太伤心了,还是写一下吧.题意很简单(英语很好读),最后看了一下金海峰的思路.果然,应该是我 ...

  4. POJ 1220 高精度/进制转换

    n进制转m进制,虽然知道短除法但是还是不太理解,看了代码理解一些了: 记住这个就好了: for(int k=0;l; ){ for(int i=l ; i>=1 ; i--){ num[i - ...

  5. (高精度运算4.7.26)POJ 1220 NUMBER BASE CONVERSION(高精度数的任意进制的转换——方法:ba1----->10进制----->ba2)

    package com.njupt.acm; import java.math.BigInteger; import java.util.Scanner; public class POJ_1220_ ...

  6. poj 1220 NUMBER BASE CONVERSION

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

  7. 高精度进位制转换,Poj(1220)

    转自ACdream. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXS ...

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

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

  9. java水题集

    POJ - 1220 进制转换 import java.io.*; import java.util.*; import java.math.*; public class Main { public ...

随机推荐

  1. JQ nextALL() 实现遍历

    在我们的 手机端 常常需要 应用到 hide 和 show 的方法 来节省页面的版块 那么我们需要更多的是 需要 show 一个 <li>  hide 剩下的 <li> 那么 ...

  2. C#集合u

    List<T> 列表(动态数组),相当于C++的 vector Queue<T> 队列,先进先出 Stack<T> 栈,先进后出 LinkedList<T&g ...

  3. Maven Eclipse (m2e) SCM connector for subclipse 1.10 (svn 1.8) 无法检测

    用新东西总是会有一些风险,尤其是相互的依赖和版本问题. 为了体验最新Eclipse Mars,Version: Mars Milestone 1 (4.5.0M1),Eclipse安装之后需要安装一些 ...

  4. Zepto.js touch模块深入分析

    目的:记录 Zepto.js touch模块 源码阅读 源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely ...

  5. solr多条件查询(一)

    每个项目的数据结构可能不同,查询的格式有可能不同,本项目所有的字段为动态的,所以整理了一下, 1.查询所有字段中包含”测试“但是所有的TM不包含”江苏大学“ q:X_1457955996315KEY: ...

  6. Yahoo News Digest(雅虎新闻摘要)APP的推出,未来的seo界又要受伤了

    雅虎在 CES 上公布了旗下首款基于 Summly (天才青少年尼克·阿洛伊西奥(Nick D'Aloisio)开发,此前将其公司以3300万美元出售给雅虎)的新闻 APP - Yahoo News ...

  7. 【PHP面向对象(OOP)编程入门教程】14.final关键字的应用

    这个关键字只能用来定义类和定义方法, 不能使用final这个关键字来定义成员属性,因为final是常量的意思,我们在PHP里定义常量使用的是define()函数,所以不能使用final来定义成员属性. ...

  8. mongodb安装 window

    安装MongoDB 1.按照操作系统下载http://www.mongodb.org/downloads. 2.在D盘新建MongoDB文件夹(此文件夹为自定义的数据库安装目录D:\MongoDB)把 ...

  9. BZOJ3083——遥远的国度

    1.题目大意:三个操作,换根,修改树上的某条路径,查询一个子树的最小值 2.分析:这个其实还是挺好做的,修改树上的某条路径,裸树剖,查询子树的最小值,这个是树剖满足dfs序 那么就是换根了,对吧,其实 ...

  10. python 函数的调用 和执行 小知识

    1.符号表 执行一个函数会引入一个用于函数的局部变量的新符号表. 更确切地说, 函数中的所有的赋值都是将值存储在局部符号表: 而变量引用首先查找局部符号表, 然后是上层函数的局部符号表, 然后是全局符 ...