题意:

将一个k进制的高精度数字A转换成m进制数B(k,m<=62)

分析:

我本来想把数字先转换成10进制,然后再转换成m进制,觉得太麻烦,于是乎问WZC神犇怎样做简单

他是这样做的:

应用“除n取余法”,我们直接短除A,除数是m

还是举例说明吧:7进制下的35,转换成2进制,就用3除以2,商是1,余数是1

将1*7再加上第二位的5当成第二个数,继续重复以上步骤

说白了了就和10进制的短除法一样,只不过我们在对于每一位短除的处理上采用的是7进制(处理十进制的时候不都是将余数*10加到下一位么~)

这样,这个题目完美解决了~

PS:代码里写了好多没有用的函数,忽略就好~

友情提示:注意将0转换后是否有输出

我在这里wa了好久。。。

View Code

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cstdlib>
 4 #include <iostream>
 5
 6 #define N 10000
 7
 8 using namespace std;
 9
10 char cao[1000]={"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"};
11
12 struct BIGN
13 {
14     int a[N];
15 }ans;
16
17 int n,p,mod[N],hash[N],m,tt;
18 char s[10000];
19
20 inline void prt(BIGN &a)
21 {
22     for(int i=a.a[0];i>=1;i--) printf("%d ",a.a[i]);
23     puts("");
24 }
25
26 inline BIGN operator %(BIGN a,int md)
27 {
28     BIGN c;
29     memset(c.a,0,sizeof c.a);
30     c.a[0]=a.a[0];
31     int ys=0;
32     for(int i=a.a[0];i>=1;i--)
33     {
34         ys=a.a[i]+ys*n;
35         c.a[i]=ys/md;
36         ys%=md;
37     }
38     mod[++p]=ys;
39     while(c.a[0]>1&&c.a[c.a[0]]==0) c.a[0]--;
40     return c;
41 }
42
43 void prev()
44 {
45     for(int i=0;i<62;i++) hash[cao[i]]=i;
46 }
47
48 void change()
49 {
50     memset(ans.a,0,sizeof ans.a);
51     ans.a[0]=strlen(s+1);
52     for(int i=1;i<=ans.a[0];i++) ans.a[i]=hash[s[ans.a[0]-i+1]];
53 }
54
55 inline bool check(BIGN &c)
56 {
57     if(c.a[0]==1&&c.a[1]==0) return false;
58     else return true;
59 }
60
61 void go()
62 {
63     scanf("%d%d%s",&n,&m,s+1);
64     printf("%d %s\n%d ",n,s+1,m);
65     change();
66     p=0;
67     while(check(ans)) ans=ans%m;
68     if(p) while(p) printf("%c",cao[mod[p--]]);
69     else printf("0");
70     puts("");
71     puts("");
72 }
73
74 int main()
75 {
76     prev();
77     scanf("%d",&tt);
78     while(tt--) go();
79     system("pause");
80     return 0;
81 }

转载于:https://www.cnblogs.com/proverbs/archive/2012/10/11/2720376.html

POJ 1220 高精度进制转换相关推荐

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

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

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

    题目:NUMBER BASE CONVERSION 就是后面的数字以a进制的形式给出,要求转化为b进制输出. #include <stdio.h> #include <string. ...

  3. 【题解】【AcWing】3374. 进制转换2

    3374. 进制转换2 原题传送:AcWing 3374. 进制转换2 将 MMM 进制的数 XXX 转换为 NNN 进制的数输出. 输入格式 第一行包括两个整数: MMM 和 NNN . 第二行包含 ...

  4. 进制转换 (清华大学考研机试)

    文章目录 题目 AC代码 题目 本题链接:进制转换 (清华大学考研机试) 本博客给出本题截图: AC代码 代码解释:高精度 + 进制转换,高精度详见:高精度运算,关于高精度的模板,详见:高精度算法模板 ...

  5. POJ - 1220 NUMBER BASE CONVERSION(高精度运算+进制转换+模拟)

    题目链接:点击查看 题目大意:给出两个进制x和y,再给出一个x进制下的数num,求num转换为y进制后的答案 题目分析:直接套模板就行了,进制转换没什么好说的,直接模拟,这个题开了加速外挂只能优化几十 ...

  6. 【EOJ Monthly 2019.02 - D】进制转换(思维,取模,高精度大数)

    题干: 单测试点时限: 2.0 秒 内存限制: 256 MB "他觉得一个人奋斗更轻松自在.跟没有干劲的人在一起厮混,只会徒增压力." QQ 小方决定一个人研究研究进制转换. 很快 ...

  7. 试解PTA《20211122-函数基础练习》,涉及 高精度加法 和 10进制转换成2-16进制问题,有需要的同学来看看吧;

    目录 一.前言 二.例题部分 2.1.进制转换 2.1.1.题解1 2.1.2.题解2 2.2. 函数返回一个整数的反序数 (20 分) 2.2.2 题解 2.3. 大整数A+B (10 分) 2.3 ...

  8. 【进制转换】负进制转换 多进制转换

    1.负进制转换 洛谷P1017 进制转换 负进制的转换和正进制的转换雷同,都是用短除取余法,这里要保证余数都要是正数才行: 要想让本来余数是负数变为正数,其实很好操作,就直接让商+1,余数-(相应的进 ...

  9. 洛谷(小鱼的数字游戏、进制转换、Cableway、Quasi Binary)

    小鱼的数字游戏: 代码: #include<iostream> #include<cstring> #include<algorithm> using namesp ...

  10. php 64进制转16进制,PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]

    $mtime1= explode(" ", microtime()); $startTime= $mtime1[0] + $mtime1[1];?> 进制转换 2 8 10 ...

最新文章

  1. c语言函数传参时候的类型强制装换
  2. 大数据最清楚王宝强离婚事件到底有多热!
  3. 小米做手机是真不赚钱,米粉要支持请多容忍广告
  4. apache AllowEncodedSlashes 允许URL中对路径分隔符进行编码
  5. uvm 形式验证_一种基于UVM的总线验证方法与流程
  6. Flutter中Row中的子控件左右两端对齐
  7. C#温故而知新学习系列之XML编程—Xml写入器XmlWriter类(三)
  8. 联想杯 - Gentle Jena(单调栈)
  9. Python getattr() 函数==>获取一个对象的属性值
  10. java this.name= name_thread(this, ThreadName)对于Java中这个语句,this是什么?
  11. GitHub使用.md
  12. 【Kernel Method】Kernel Method核方法介绍
  13. SpringApplication#run⽅法第5步,打印banner(四)
  14. 信号处理之CFAR恒虚警检测
  15. Maximo学习:创建表和应用程序
  16. HDU 6627 equation(模拟,分类讨论)
  17. 口碑最好的国产蓝牙耳机,2021国产最好用的蓝牙耳机
  18. WriteError Resulting document after update is larger than 16777216
  19. 烤仔观察 | 哈耶克最后的预言
  20. Maven的爱恨情仇

热门文章

  1. 算法与数据结构1800题 之字符串(一)
  2. oracle中DMP文件导入导出例子详解
  3. 2012-12-17 → 2013-01-20 周总结:五周没写周总结了,今天来总结下
  4. 【已解决】 c8812在eclipse上调试打不出log来?求帮助如何解决?!!!
  5. ORB-SLAM 解读(五) 地图点投影进行特征匹配
  6. 分享一个 pycharm 专业版的永久使用方法
  7. 查询各分类中最大自增ID
  8. ASP.NET with C#生成验证码的过程
  9. layui表单元素的radio单选框问题
  10. Linux学习笔记(二十三)shell介绍、history命令历史、命令补全和别名、通配符、...