博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1220 高精度/进制转换
阅读量:5244 次
发布时间:2019-06-14

本文共 1054 字,大约阅读时间需要 3 分钟。

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
#include
#include
#include
#include
using namespace std;const int maxn=1200;map
no;map
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
=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"<

  

转载于:https://www.cnblogs.com/pkgunboat/p/9315236.html

你可能感兴趣的文章
使用 Apache Pig 处理数据6
查看>>
Hadoop集群内lzo的安装与配置
查看>>
CASS 7.1 和 AutoCAD 2006的安装使用
查看>>
supervisor之启动rabbitmq报错原因
查看>>
Struts2工作原理
查看>>
二 、Quartz 2D 图形上下文栈
查看>>
[Leetcode Week8]Edit Distance
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
ASP.NET 3.5构建Web 2.0门户站点
查看>>
PP tables for production order
查看>>
oam系统安装,windows操作系统注册列表影响系统安装
查看>>
[scrum]2011/9/25-----第五天
查看>>
《人月神话》有感,好书,推荐
查看>>
IE浏览器打开chorme浏览器,如何打开其他浏览器
查看>>
GNU 内联汇编
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
php提交表单校验例子
查看>>
man查看帮助命令
查看>>
【SVM】libsvm-python
查看>>
mysql 修改已存在的表增加ID属性为auto_increment自动增长
查看>>