博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正整数的任意进制转换
阅读量:5113 次
发布时间:2019-06-13

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

正整数的任意进制转换

时间限制: 1 Sec  内存限制: 128 MB

题目描述

将 p 进制 n 转换为 q 进制。p 和 q 的取值范围为[2,36],其中,用到的数码按从小到大依次为:0,1,2,3,4,5,6,7,8,9,A,B,...,Z,不考虑小写字母。 

 

输入

一共1+m 行: 

1行为 m,表示后面有 m 行(1 <= m <= 60). 
其后的m行中,每行3个数: 进制p,p进制数n,以及进制 q。 
三个数之间用逗号间隔。
n 的长度不超过50位。

 

输出

转换后的 q 进制数。

 

样例输入

618,2345678A123,1815,23456,1812,2345678,2016,12345678,2325,3456AB,2118,AB1234567,22

 

样例输出

2345678A123114E022B7A421A976L7C213622JF0G367

 用普通的进制转换思维就可以了

AC代码:

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #define frn1(i,x,n) for (int i=x;i<=n;i++) 7 #define fdn1(i,x,n) for (int i=x;i>=n;i--) 8 #define frn0(i,x,n) for (int i=x;i
n;i--)10 using namespace std;11 int n,a[61],b[191],len;12 string s;13 void ex_change(int p,int q)14 {15 int tot=0,k=1;16 while (k<=len)17 {18 int stp=0;19 frn1(i,k,len)20 {21 int tmp=(stp*p+a[i]);22 a[i]=tmp/q;23 stp=tmp%q;24 }25 b[++tot]=stp;26 while(!a[k] && k<=len)27 k++;28 }29 frd0(i,tot,0)30 if (b[i]<10)31 printf("%d",b[i]);32 else33 printf("%c",char(b[i]+55));34 puts("");35 }36 int main()37 {38 scanf("%d",&n);39 while (n--)40 {41 cin>>s;42 int p=0,k,q=0;len=0;43 for (int i=0;s[i]!=',';k=++i)44 {45 p=p*10+s[i]-48;46 k=i;47 }48 for (int i=k+1;s[i]!=',';k=++i)49 if (s[i]>='0' && s[i]<='9')50 a[++len]=s[i]-48;51 else52 a[++len]=s[i]-55;53 frn0(i,k+1,s.size())54 q=q*10+s[i]-48;55 ex_change(p,q);56 }57 return 0;58 }
进制

 

转载于:https://www.cnblogs.com/LHR-HY/p/11064648.html

你可能感兴趣的文章
CSS——字体大小最常用的单位
查看>>
第五章 动画 50 动画-transition-group中appear和tag属性的作用
查看>>
杨辉三角
查看>>
文件上传
查看>>
Mysql主从同步(复制)
查看>>
SQL利用Case When Then多条件判断
查看>>
C++string类整理
查看>>
SqlBulkCopy 快速插入数据
查看>>
Entity Framework 三
查看>>
最近写了2套软件,WEB版的进销存管理系统,服装连锁店管理软件
查看>>
Android 调用已安装市场,进行软件评分的功能实现
查看>>
java中的String.format使用
查看>>
html active属性
查看>>
Maven MyBatis快速入门
查看>>
扩展方法:获取枚举的描述信息
查看>>
jquery笔记
查看>>
Andorid:日常学习笔记(3)——掌握日志工具的使用
查看>>
【Spring Boot学习之一】Spring Boot简介
查看>>
个人中心标签页导航
查看>>
HTML5应用盈利难,解决5大难题是关键
查看>>